lcdrecover -g {remove|restore|delete} -- [arg1 arg2 … argn] | -G {remote|restore|delete} -- [arg1 arg2 … argn] | -p primarytest | [-o resource]
-g オプションは、_remove、restore、delete_ のうちいずれかの引数を取ります。このオプションによって、指定した引数に対するグローバル前処理スクリプトが実行されます。グローバル前処理スクリプトは、特定のイベントの前に実行するようにアプリケーションによって登録されます。例えば、このオプションに restore 引数を指定すると、LifeKeeper によって登録された restore 前処理スクリプトが実行されてから、すべてのアプリケーションによって登録された restore 前処理スクリプトが実行されます。通常、 perform_action (LRACI perform_action を参照) によって restore 前処理スクリプトが自動的に実行されます。ただし、 perform_action に -G オプションが指定された場合を除きます。
perform_action の -G オプションを使用すると、最初に lcdrecover -g restore を使用した perform_action の実行の前に 1 回だけグローバル前処理スクリプトを実行して、複数の perform_action コマンドを実行できます。アプリケーションは、以下のパスにスクリプトをインストールして、グローバル前処理スクリプトを登録できます。
%LKROOT%\ subsys\<appname>\actions\prerestore.ksh
arg1, arg2, … argn は実行時にグローバル前処理スクリプトに渡される引数です。
remove 引数についても同様のスクリプト (remove 前処理スクリプト) が存在し、 perform_action -G -a remove が実行される前に実行できます。実行されるのは、 lcdrecover -g remove の実行時です。
delete 前処理スクリプトも同様ですが、 ins_remove の -G が省略された場合を除いて、 *ins_remove * -G … プログラムの前に実行されます (LCDI インスタンス を参照)。
lcdrecover の -G オプションは -g に類似していますが、グローバル後処理スクリプトを実行するように指定する点が異なります。 -G オプションは、その前の lcdrecover -g arg を実行せずに使用しないでください。また、すべての perform_action プログラムまたは ins_remove プログラムが実行された後に実行する必要があります。 getlocks によって保護された領域内で -G オプションを実行する場合 ( getlocks の後、 rlslocks の前)、 arg1 に -m を設定して、 getlocks の 2 つ目のインスタンスが実行されないようにしてください。2 つ目のインスタンスが実行されると、処理がハングします。
以下の例では、複数の perform_action コマンドを実行します。グローバル前処理スクリプトとグローバル後処理スクリプトは 1 回だけ実行されます。
lcdrecover -g restore
# run "preglobal" restore scripts
perform_action -G -a restore -t tagname
# neither scripts are run
perform_action -G -a restore -t tagname2
# neither scripts are run
lcdrecover -G restore -- -m
# run "postglobal" restore scripts
# use -m arg when in getlocks protected region of code
この例では、複数の restore 前処理スクリプトと restore 後処理スクリプトが実行されます。
perform_action -a restore -t tagname
# all scripts once
perform_action -a restore -t tagname2
# all scripts again
lcdrecover の -p オプションは、特定のリソースがプライマリシステムまたはセカンダリシステムのどちらのリソース階層にあるかを判定するために使用されます。リソースタグ名に primary test を指定すると、リソースがプライマリ階層に存在する場合は文字列 primary が、存在しない場合は secondary が標準出力に出力されます。
-o オプションを使用すると、指定したリソースタグに関連付けられたリモートシステムを取得できます。
このトピックへフィードバック