プリスクリプトとポストスクリプト
カスタムのプリスクリプトとポストスクリプトをデータ保護処理の一部として使用することができます。これらのスクリプトによって、データ保護ジョブの前後の処理を自動化できます。たとえば、データ保護ジョブのエラーや警告を自動的に通知するスクリプトを組み込むことができます。プリスクリプトとポストスクリプトを設定する前に、スクリプトを作成するための要件を理解しておく必要があります。
サポートされるスクリプト タイプ
Perlスクリプトとシェル スクリプトがサポートされています。シェルスクリプトは !/bin/bash
。(`!/bin/sh`はサポートされていません。
スクリプト パスの場所
プリスクリプトとポストスクリプトは、SnapCenter Plug-in for VMware vSphereによって実行されます。そのため、スクリプトは実行ファイル権限を持つSnapCenter Plug-in for VMware vSphere OVAに配置されている必要があります。
例えば: * PERLスクリプトのパスは次のようになります /support/support/script.pl
* シェルスクリプトのパスは次のようになります /support/support/script.sh
スクリプト パスは、スクリプトの実行時に検証されます。
スクリプトを指定する場所
スクリプトはバックアップ ポリシーに指定します。バックアップ ジョブが開始されると、ポリシーによってスクリプトがバックアップされるリソースに自動的に関連付けられます。
複数のスクリプトを指定するには、各スクリプト パスの後に Enter キーを押して、各スクリプトを別々の行にリストします。セミコロン(;)は使用できません。プリスクリプトとポストスクリプトをそれぞれ複数指定できます。1つのスクリプトをプリスクリプトとポストスクリプトの両方として作成し、そのスクリプトから他のスクリプトを呼び出すことができます。
スクリプトが実行されるタイミング
スクリプトは、BACKUP_PHASE に設定された値に従って実行されます。
-
BACKUP_PHASE=PRE_BACKUP
プレスクリプトは、操作の PRE_BACKUP フェーズで実行されます。
|
プリスクリプトが失敗しても、バックアップは正常に完了しますが、警告メッセージが送信されます。 |
-
BACKUP_PHASE=POST_BACKUP または BACKUP_PHASE=FAILED_BACKUP
ポストスクリプトは、バックアップが正常に完了した後の操作の POST_BACKUP フェーズで実行されるか、バックアップが正常に完了しなかった場合は FAILED_BACKUP フェーズで実行されます。
|
ポストスクリプトが失敗しても、バックアップは正常に完了しますが、警告メッセージが送信されます。 |
スクリプトの値が設定されていることを確認するには、次の点を確認してください。 * PERL スクリプトの場合: /support/support/log_env.log
* シェルスクリプトの場合: /support/support/log_file.log
スクリプトに渡される環境変数
スクリプトで使用できる環境変数を次の表に示します。
環境変数 | 説明 |
---|---|
|
バックアップの名前。ポストスクリプトでのみ渡される変数です。 |
|
バックアップの日付(形式: `yyyymmdd`変数はポストスクリプトでのみ渡されます。 |
|
バックアップの時刻(形式: `hhmmss`変数はポストスクリプトでのみ渡されます。 |
|
スクリプトを実行するバックアップのフェーズ。有効な値は次のとおりです。 |
|
バックアップ内のストレージSnapshotの数。ポストスクリプトでのみ渡される変数です。 |
|
定義されたストレージ スナップショットの 1 つ。形式は次のとおりです。 |
|
バックアップ内のVMの数。プリスクリプトとポストスクリプトで渡される変数です。 |
|
定義された仮想マシンの 1 つ。形式は次のとおりです。 |
スクリプトのタイムアウト
バックアップ スクリプトのタイムアウトは15分です。この値は変更できません。
Perlスクリプトの例1
次のPerlスクリプトの例では、バックアップの実行時に環境変数が出力されます。
#!/usr/bin/perl
use warnings;
use strict;
my $argnum;
my $logfile = '/support/support/log_env.log';
open (FH, '>>', $logfile) or die $!;
foreach (sort keys %ENV) {
print FH "$_ = $ENV{$_}\n";
}
print FH "=========\n";
close (FH);
Perlスクリプトの例2
次の例では、バックアップに関する情報が出力されます。
#!/usr/bin/perl
use warnings;
use strict;
my $argnum;
my $logfile = '/support/support/log_env.log';
open (FH, '>>', $logfile) or die $!;
print FH "BACKUP_PHASE is $ENV{'BACKUP_PHASE'}\n";
print FH "Backup name $ENV{'BACKUP_NAME'}\n";
print FH "Virtual Machine $ENV{'VIRTUAL_MACHINES'}\n";
print FH "VIRTUAL_MACHINE # is $ENV{'VIRTUAL_MACHINE.1'}\n";
print FH "BACKUP_DATE is $ENV{'BACKUP_DATE'}\n";
print FH "BACKUP_TIME is $ENV{'BACKUP_TIME'}\n";
print FH "STORAGE_SNAPSHOTS is $ENV{'STORAGE_SNAPSHOTS'}\n";
print FH "STORAGE_SNAPSHOT # is $ENV{'STORAGE_SNAPSHOT.1'}\n";
print FH "PWD is $ENV{'PWD'}\n";
print FH "INVOCATION_ID is $ENV{'INVOCATION_ID'}\n";
print FH "=========\n";
close (FH);
シェル スクリプトの例
===============================================
#!/bin/bash
echo Stage $BACKUP_NAME >> /support/support/log_file.log
env >> /support/support/log_file.log
===============================================