HULFT Script Serverの情報を自動でバックアップしたい

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

はじめに

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

HUFLT Scriptを導入されていて、障害が発生した場合に備えるため、定期的にサーバ情報を自動でバックアップしたい方もいらっしゃるのではないでしょうか?

今回は、HULFT ScriptのCLIバッチを利用したサーバ情報の自動バックアップ&リストアについてご紹介いたします。

CLI Consoleについて

HULFT Scriptには、HULFT Script Serverを管理するためのCLI(コマンドラインインターフェース)が用意されています。
CLIには以下の機能が提供されています。

機能概要
ユーザ管理 ユーザの作成や権限の付与、ユーザ情報の表示などを行います。
グループ管理 グループの作成や削除、グループ情報の表示などを行います。
ファイル/ディレクトリ管理 ファイルやディレクトリの作成・移動・コピー、所有者・グループの変更などを行います。
プロジェクト管理 プロジェクトのダウンロード・アップロード、プロジェクト情報の表示などを行います。
サービス実行・管理 スクリプトの実行や、サービス・スクリプトの一覧表示などを行います。
トリガー制御 トリガーの制御を行います。
システム情報表示 プロセス情報やリポジトリDB情報などの表示を行います。
HULFT Script Server操作・管理 HULFT Script Serverの停止・再起動、サーバ移行(エクスポート・インポート)などを行います。

上記の「HULFT Script Server操作・管理」機能を利用して、
サーバ情報のエクスポート・インポートのCLIバッチを作成し、自動バックアップを行います。
CLIバッチを作成するにあたり、以下のコマンドを利用します。

コマンド概要
exp サーバ情報をエクスポートする
imp サーバ情報をインポートする

バックアップCLIバッチの作成

先ほどご紹介したコマンドを利用して、CLIバッチを作成していきます。
※CLIコマンド設定ファイル・CLIバッチファイルは、メモ帳などのテキストエディタで作成します。

HULFT Scriptには以下のデータを作成し、それらをバックアップすることを前提とします。

マイプロジェクト sample
マイサービス sample
マリトリガー sample
マウント設定 /c、/D

①以下のコマンドを記載したCLIコマンド設定ファイル(Backup.cl)を作成します。

exp -d --trigger=root:sample --project=root:sample -m --triggerstatus=disable D:\backup\hulftscript

引数概要
-d 全サービス
-m 全マウントポイント
--project ユーザ:対象プロジェクト名
--trigger ユーザ:対象トリガー名
--triggerstatus 対象トリガー状態
D:\backup\hulftscript 保存先ディレクトリ
※事前にディレクトリを作成しておく必要があります。

②CLIバッチ(Backup.bat)を作成します。

echo off
cls

rem CLI設定ファイルのフルパス取得
set file="%~dp0"\Backup.cl

rem エクスポート処理
"C:\HULFT Family\HULFT8 Script\server\bin\CLI.exe" -M%file%

③CLIバッチ(Backup.bat)を実行します。

※CLIバッチと同ディレクトリにCLI設定ファイルを置きます。
c:\sample>ls
Backup.bat Backup.cl

c:\sample>Backup.bat

④正常にエクスポートが完了します。

サービスのエクスポートに成功しました。[root@sample]
トリガーのエクスポートに成功しました。[root@sample]
プロジェクトファイルのエクスポートに成功しました。[/home/root/projects/sample]
マウント設定のエクスポートに成功しました。[/D, /c]
エクスポートした設定は D:\backup\hulftscript\export_20150514171835.zip として出
力されました。

c:\sample>

バックアップスケジュール情報の作成

CLIバッチが正常に動作した事を確認したので、次にHULFTのスケジューラ機能を利用してバックアップスケジュールを設定します。
毎週日曜日18:00にHULFT Script Server情報のバックアップを実施する設定を行います。



■コマンド
 作成したCLIバッチをフルパスで指定する

■頻度            ■休日処理
 毎週             実行する

■実行曜日       ■実行時刻
 日曜             18:00

※HUFLT管理情報とHULFT Scriptの情報に不整合が起きないように、同時にバックアップを行って下さい。
 HULFTのバックアップに関しては、以下のTipsにてご紹介したスクリプトをご利用下さい。


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

リストアについて

エクスポートしたファイルをインポートする事によってサーバの状態を復元させることができます。
GUIでファイルを選択してインポートすることも可能ですが、本Tipsはimpコマンドを利用してサーバ情報をリストアします。

①CLI Consoleを起動します。

'help' でコマンドの一覧を取得できます。
#

②impコマンドでエクスポートしたファイルを指定します。

# imp -m --triggerstatus=disable D:\backup\hulftscript\export_20150515113246.zip

サービスのインポートに成功しました。 トリガーのインポートに成功しました。
マウント設定のインポートに成功しました。

引数概要
-m 差分インポートする
triggerstatus トリガーの状態を無効にする
D:\backup\.... インポートするファイル

おまけ

impコマンドを利用したサンプルCLIバッチをご紹介します。
@echo off
:Main

set merge_flag=0
set status_flag=0
set file_path=
set cmd=

cls
echo ==============================
echo 1:差分インポートを行う
echo 2:差分インポートを行わない
echo q:終了
echo ==============================

set select=
set /p select=">"

if "%select%"=="1" goto merge_flag
if "%select%"=="2" goto merge_flag
if "%select%"=="q" goto :eof
goto :Main

:merge_flag
set merge_flag=%select%

cls
echo ==============================
echo 1:全てのトリガーを有効状態にする
echo 2:全てのトリガーを無効状態にする
echo 3:エクスポート時の状態にする
echo q:終了
echo ==============================

set select=
set /p select=">"

if "%select%"=="1" goto status_flag
if "%select%"=="2" goto status_flag
if "%select%"=="3" goto status_flag
if "%select%"=="q" goto :eof
goto :Main

:status_flag
set status_flag=%select%

cls
set /p file_path="ファイルのパスを入力して下さい>"

if "%file_path%"=="" (
cls
echo ファイルパスを入力して下さい。
pause
goto :Main
)

rem ========================================
rem コマンド組み立て
rem ========================================
if "%merge_flag%-%status_flag%"=="1-1" (
set cmd=imp -m --triggerstatus=enable %file_path%
)

if "%merge_flag%-%status_flag%"=="1-2" (
set cmd=imp -m --triggerstatus=disable %file_path%
)

if "%merge_flag%-%status_flag%"=="1-3" (
set cmd=imp -m %file_path%
)

if "%merge_flag%-%status_flag%"=="2-1" (
set cmd=imp --triggerstatus=enable %file_path%
)

if "%merge_flag%-%status_flag%"=="2-2" (
set cmd=imp --triggerstatus=disable %file_path%
)

if "%merge_flag%-%status_flag%"=="2-3" (
set cmd=imp %file_path%
)
goto import

rem ========================================
:import
echo %cmd% >"%~dp0"\restore.cl

cls
echo ==============================
echo 1:インポートを行う
echo 2:インポートを行わない
echo ==============================

set select=
set /p select=">"

if "%select%"=="1" "C:\HULFT Family\HULFT8 Script\server\bin\CLI.exe" -M"%~dp0"\restore.cl
if "%select%"=="2" goto Main

pause
goto Main

では、実際サンプルバッチを利用してみましょう。

①差分インポートを行うかどうかを選択してEnterを押下します。

==============================
1:差分インポートを行う
2:差分インポートを行わない
q:終了
==============================
>1

②インポートしたトリガーの状態を選択するEnterを押下します。

==============================
1:全てのトリガーを有効状態にする
2:全てのトリガーを無効状態にする
3:エクスポート時の状態にする
q:終了
==============================
>1

③インポートする設定ファイルのパスを入力してEnterを押下します。

ファイルのパスを入力して下さい>D:\backup\hulftscript\export_20150515113246.zip

④インポートを行うかどうかを選択してEnterを押下します。

==============================
1:インポートを行う
2:インポートを行わない
==============================
>1

⑤インポートした結果が出力されます。

サービスのインポートに成功しました。 トリガーのインポートに成功しました。
マウント設定のインポートに成功しました。
続行するには何かキーを押してください . . .

まとめ

いかがでしょうか?
HULFT Scriptのコマンドをバッチで利用することによって、サーバの情報をスケジュール通りに自動的にバックアップできます。
何らかの原因でサーバのデータがなくなっても、自動バックアップしたデータを戻す事でいち早く運用を復旧させることができます。

HULFT Scriptには他にも便利なコマンドがあるので、ぜひCLIバッチを作成し、運用に役立てて下さい。
この記事は役に立ちましたか?
0人中0人がこの記事が役に立ったと言っています

コメント