HULFTの運用を止めずに、管理情報をバックアップ・リストアしたい

OrangeLab. 運営チーム
作成日時: - 更新日時:
Avatar

はじめに

こんにちは、HULFT Orange Lab.運営チームの兼平です。

HULFTを運用していく中で、バックアップについて気になったことがある方は多いのではないでしょうか?
運用上、HULFTを一時的に止めてバックアップをするのは現実的ではないですよね?
そこでHULFTの運用を止めずに、管理情報のバックアップ&リストアを行う方法をご紹介します。
※本TIPSで紹介する手法は管理情報のみをバックアップすることが可能です。

今回使用する機能やコマンドは以下になります。
  • スケジューラ機能
  • 管理情報パラメータファイル生成コマンド(utligen
  • 管理情報バッチ登録コマンド(utliupdt

管理情報パラメータファイル生成コマンド(utligen)について

コマンドを利用して、HULFTに登録されている各種管理情報をパラメータファイルに出力することができます。パラメータファイルには各種管理情報の設定値が出力されているので、そのファイルを元に管理情報をリストアする事が可能です。
では、管理情報パラメータファイル生成コマンドについて見てみましょう。

utligen -f filename -i {snd|rcv|job|hst|tgrp|fmt|mfmt|sch|trg} [-id ID]

引数説明
filename パラメータファイル名
snd 配信管理情報
rcv 集信管理情報
job ジョブ起動情報
hst 詳細ホスト情報
tgrp 転送グループ情報
fmt フォーマット情報
mfmt マルチフォーマット情報
sch スケジュール情報
trg ファイルトリガ情報
ID 対象管理情報ID

上記の様に、管理情報の種類(配信、集信など)と対象管理情報のIDを指定する事で、パラメータファイルを生成できます。
では例として、配信管理情報を一つバックアップしてみましょう。

①バックアップする配信管理情報の設定を確認



②utligenを使用して、①の管理情報を「LOOP.param」というファイルに出力

c:\>utligen -f LOOP.param -i snd -id LOOP
utligen : SUCCESS!

③「LOOP.param」の中身を確認

「LOOP.param」の中身を確認します。

#
# ID=LOOP
#
SNDFILE=LOOP
FILENAME=D:\testdata\out
TRANSTYPE=B
TRANSPRTY=50
INTERVAL=1
BLOCKLEN=1024
BLOCKCNT=10
COMP=3
GRPID=local
KJCHNGE=S
CLEAR=K
CODESET=A
COMPSIZE=0
SHIFTTRANSACT=Y
DEFLATELEVEL=D END

上記の様に、パラメータファイルにファイルIDやファイル名などの設定値が出力されています。各タグの詳細はヘルプやマニュアルを参照してください。

管理情報バッチ登録コマンド(utliupdt)について

管理情報バッチ登録コマンドは、utligenで生成したパラメータファイルもしくは、ユーザ自身が作成したパラメータファイルから、管理情報をリストアすることができます。
では、管理情報バッチ登録コマンドについて見てみましょう。

utliupdt -f filename [-r]

引数説明
filename パラメータファイル名

すでに管理情報が存在している場合は「r」オプションをつけることで上書き登録ができます。
では例として、管理情報を一つ登録してみましょう。

①配信管理情報がないことを確認

②パラメータファイルの内容を確認

#
# ID=LOOP
#
SNDFILE=LOOP
FILENAME=D:\testdata\out
TRANSTYPE=B
TRANSPRTY=50
INTERVAL=1
BLOCKLEN=1024
BLOCKCNT=10
COMP=3
GRPID=local
KJCHNGE=S
CLEAR=K
CODESET=A
COMPSIZE=0
SHIFTTRANSACT=Y
DEFLATELEVEL=D
END

③utliupdtでパラメータファイルを指定して、管理情報を登録

c:\>utliupdt -f LOOP.param -r
utliupdt: 正ファイルへの登録を開始します。
utliupdt: 正ファイルへの登録が完了しました。
utliupdt: 副ファイルへの登録を開始します。
utliupdt: 副ファイルへの登録が完了しました。

④管理情報が正常に登録された事を確認



スケジューラ機能

スケジューラ機能とは日々の運用業務を自動化する機能です。HULFTスケジューラにジョブを登録し、ジョブの起動条件を設定することができます。この設定に従って、登録されたジョブが自動的に実行されます。
※スケジューラはWindows版のみの機能です。

では例として、1つスケジュールを作成してみましょう。

①スケジュール情報を新規作成する



項目概要
スケジュールID スケジュール情報を識別するためのIDを設定します
コマンド ジョブとして実行するバッチファイルまたは実行ファイルを指定します
頻度 ジョブを実行する頻度を設定します
実行時刻、実行曜日、実行日 頻度設定に合わせて実行時刻などを設定します
休日処理 休日にジョブを実行するかどうかを設定します
有効開始日 当該スケジュールをいつ開始するかを設定します

②スケジュールを有効にする

作成したスケジュール情報を有効にするには、スケジューラプロセスを再起動する必要があります。
※スケジューラプロセスのみを再起動しますので、集配信などには影響有りません。

③スケジュール通りにジョブが実行されたことを確認

バックアップについて

上記で説明したスケジューラ機能やコマンドがひと通り分かったところで、それらを応用して定期的に管理情報をバックアップするスケジュール情報を作成してみましょう。

①実行日付のディレクトリを作成し、その中に全管理情報をバックアップするスクリプトを作成

※このサンプルは、各管理情報毎にリストアする運用を想定しています。各管理情報を1つのファイルにまとめて出力する事も可能です。

@echo off
cls

rem ----------------設定------------------------
set date=%DATE:/=%
set dir=d:\backup\hulft8\%date%
if exist %dir% goto backup else mkdir
rem --------------------------------------------

:mkdir
mkdir %dir%

goto backup

:backup
utligen -f %dir%\snd -i snd
utligen -f %dir%\rcv -i rcv
utligen -f %dir%\job -i job
utligen -f %dir%\hst -i hst
utligen -f %dir%\tgrp -i tgrp
utligen -f %dir%\fmt -i fmt
utligen -f %dir%\mfmt -i mfmt
utligen -f %dir%\sch -i sch
utligen -f %dir%\trg -i trg

exit

②スケジュール情報のコマンドに①で作成したスクリプトを指定



項目設定値
頻度 毎日
休日処理 実行する
実行時刻 任意
有効開始日 任意

③スケジューラプロセスを再起動

④スケジュール履歴一覧で正常にジョブが実行されたことを確認

⑤パラメータファイルが出力されていることを確認

リストアについて

utliupdtは1回につき1つの管理情報しか登録できないので、複数の管理情報をまとめて登録するスクリプトを作成しておくと便利です。

①パラメータファイル保存先ディレクトリを指定して、リストアするスクリプト

@echo off
:Main
cls

rem バックアップ先を指定
set /p Dir="ディレクトリパス:"

if "%Dir%" == "" (
 echo ディレクトリパスを入力してください。
 pause
 goto Main
)

echo.

if exist "%Dir%" (
 echo ディレクトリチェック:OK
 echo.
 goto restore
) else (
 echo ディレクトリチェック:NG
 echo ディレクトリパス名を確認して下さい。
 pause
 goto Main
)

:restore
echo 各種管理情報リストア
echo.
echo =========================
utliupdt -f %Dir%\snd -r
utliupdt -f %Dir%\rcv -r
utliupdt -f %Dir%\fmt -r
utliupdt -f %Dir%\mfmt -r
utliupdt -f %Dir%\job -r
utliupdt -f %Dir%\hst -r
utliupdt -f %Dir%\tgrp -r
utliupdt -f %Dir%\sch -r
utliupdt -f %Dir%\trg -r
echo =========================

echo.

if %ERRORLEVEL% == 0 (
 echo 処理が正常に終了しました。
) else (
 echo 一部の処理が失敗した可能性があります。
 echo パラメータファイル及び管理情報を確認して下さい。
)

pause
goto Main

②スクリプトを起動して、パラメータファイル保存先ディレクトリを入力

ディレクトリパス:D:\backup\hulft8\20150421

ディレクトリチェック:OK

各種管理情報リストア

=========================
utliupdt: 正ファイルへの登録を開始します。
utliupdt: 正ファイルへの登録が完了しました。
utliupdt: 副ファイルへの登録を開始します。
utliupdt: 副ファイルへの登録が完了しました。
utliupdt: 正ファイルへの登録を開始します。
utliupdt: 正ファイルへの登録が完了しました。
utliupdt: 副ファイルへの登録を開始します。
utliupdt: 副ファイルへの登録が完了しました。
utliupdt: 正ファイルへの登録を開始します。
utliupdt: 正ファイルへの登録が完了しました。
utliupdt: 副ファイルへの登録を開始します。
utliupdt: 副ファイルへの登録が完了しました。
utliupdt: 正ファイルへの登録を開始します。
utliupdt: 正ファイルへの登録が完了しました。
utliupdt: 副ファイルへの登録を開始します。
utliupdt: 副ファイルへの登録が完了しました。
utliupdt: 正ファイルへの登録を開始します。
utliupdt: 正ファイルへの登録が完了しました。
utliupdt: 副ファイルへの登録を開始します。
utliupdt: 副ファイルへの登録が完了しました。
utliupdt: 正ファイルへの登録を開始します。
utliupdt: 正ファイルへの登録が完了しました。
utliupdt: 副ファイルへの登録を開始します。
utliupdt: 副ファイルへの登録が完了しました。
utliupdt: 正ファイルへの登録を開始します。
utliupdt: 正ファイルへの登録が完了しました。
utliupdt: 副ファイルへの登録を開始します。
utliupdt: 副ファイルへの登録が完了しました。
utliupdt: 正ファイルへの登録を開始します。
utliupdt: 正ファイルへの登録が完了しました。
utliupdt: 副ファイルへの登録を開始します。
utliupdt: 副ファイルへの登録が完了しました。
utliupdt: 正ファイルへの登録を開始します。
utliupdt: 正ファイルへの登録が完了しました。
utliupdt: 副ファイルへの登録を開始します。
utliupdt: 副ファイルへの登録が完了しました。
=========================

処理が正常に終了しました。
続行するには何かキーを押してください . . .

まとめ

いかがでしょうか? この様にHULFTの運用を止めずに、utligenコマンドとスケジューラ機能を利用して定期的に各管理情報をバックアップし、必要に応じてutliupdtコマンドでバックアップした管理情報をリストアする事ができます。

これを機に、ぜひスケジューラ機能やutligenなどのコマンドを活用し、運用に役立ててください。
この記事は役に立ちましたか?
2人中2人がこの記事が役に立ったと言っています

コメント