SnapCenter Plug-in for VMware vSphere 4.9

to English version

プリスクリプトとポストスクリプト

カスタムのプリスクリプトとポストスクリプトをデータ保護処理の一部として使用することができます。これらのスクリプトによって、データ保護ジョブの前後の処理を自動化できます。たとえば、データ保護ジョブのエラーや警告を自動的に通知するスクリプトを組み込むことができます。プリスクリプトとポストスクリプトを設定する前に、スクリプトを作成するための要件を理解しておく必要があります。

サポートされるスクリプト タイプ

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

スクリプトに渡される環境変数

スクリプトで使用できる環境変数を次の表に示します。

環境変数 説明

BACKUP_NAME

バックアップの名前。
ポストスクリプトでのみ渡される変数です。

BACKUP_DATE

yyyymmdd形式で指定されたバックアップの日付。
ポストスクリプトでのみ渡される変数です。

BACKUP_TIME

hhmmss形式で指定されたバックアップの時刻。
ポストスクリプトでのみ渡される変数です。

BACKUP_PHASE

スクリプトを実行するバックアップのフェーズ。
指定できる値は次のとおりです。PRE_BACKUP, POST_BACKUP, and FAILED_BACKUP)が導入されています。
プリスクリプトとポストスクリプトで渡される変数です。

STORAGE_SNAPSHOTS

バックアップ内のストレージSnapshotの数。
ポストスクリプトでのみ渡される変数です。

STORAGE_SNAPSHOT.#

次の形式で指定された定義済みストレージSnapshotの1つ。
<filer>:/vol/<volume>:<ONTAP-snapshot-name>
ポストスクリプトでのみ渡される変数です。

VIRTUAL_MACHINES

バックアップ内のVMの数。
プリスクリプトとポストスクリプトで渡される変数です。

VIRTUAL_MACHINE.#

次の形式で指定された定義済み仮想マシンの1つ。
<VM name>[vertical bar]<VM UUID>[vertical bar]<power-state>[vertical bar]<VM snapshot>[vertical bar]<ip-addresses>
<power-state> has the values POWERED_ON, POWERED_OFF, or
SUSPENDED

<VM snapshot>の値は、trueまたはfalseです。
プリスクリプトとポストスクリプトで渡される変数です。

スクリプトのタイムアウト

バックアップ スクリプトのタイムアウトは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
===============================================

Top of Page