Skip to main content
SnapCenter Plug-in for VMware vSphere 5.0
本製品の最新リリースがご利用いただけます。
日本語は機械翻訳による参考訳です。内容に矛盾や不一致があった場合には、英語の内容が優先されます。

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

共同作成者

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

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

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

バックアップの時刻(「Variable passed in postscripts only」形式) hhmmss

BACKUP_PHASE

スクリプトを実行するバックアップのフェーズ。有効な値は、 `PRE_BACKUP, POST_BACKUP, and FAILED_BACKUP`です。プリスクリプトとポストスクリプトで渡される変数です。

STORAGE_SNAPSHOTS

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

STORAGE_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
===============================================