简体中文版经机器翻译而成,仅供参考。如与英语版出现任何冲突,应以英语版为准。

预处理脚本和后处理脚本

提供者 Ronya-Robinson netapp-madhulik

您可以在数据保护操作中使用自定义预处理和后处理脚本。这些脚本可以在数据保护作业之前或之后启用自动化。例如,您可以包含一个脚本,用于自动通知您数据保护作业失败或出现警告。在设置预处理脚本和后处理脚本之前,您应了解创建这些脚本的一些要求。

支持的脚本类型

支持 Perl 和 shell 脚本。Shell 脚本必须以 ` ! /bin/bash` 开头。(不支持` ! /bin/sh` 。)

脚本路径位置

预处理脚本和后处理脚本由适用于 VMware vSphere 的 SnapCenter 插件运行。因此,这些脚本必须位于适用于 VMware vSphere 的 SnapCenter 插件 OVA 中,并具有可执行权限。

例如: * Perl 脚本路径可能是 ` /support/support/script.pl` * shell 脚本路径可能是 ` /support/script.sh`

执行脚本时会验证脚本路径。

指定脚本的位置

脚本在备份策略中指定。启动备份作业后,策略会自动将脚本与要备份的资源关联起来。

要指定多个脚本,请在每个脚本路径后按 * Enter * ,以便在单独的行中列出每个脚本。不允许使用分号(;)。您可以指定多个预处理和多个后处理脚本。一个脚本可以同时编码为预处理脚本和后处理脚本,并可调用其他脚本。

执行脚本时

脚本将根据为 backup_phase 设置的值执行。

  • backup_phase=pre_backup

    预处理将在操作的 PRE_BACKUP 阶段执行。

注 如果预处理失败,备份将成功完成,并会发送一条警告消息。
  • backup_phase=post_backup 或 backup_phase=failed_backup

    备份成功完成后,将在操作的 post_backup 阶段执行后脚本;如果备份未成功完成,则在 failed_backup 阶段执行后脚本。

注 如果一个后处理脚本失败,备份将成功完成,并会发送一条警告消息。

检查以下内容以验证是否已填充脚本值: * 对于 Perl 脚本: ` /support/log/env.log` * 对于 shell 脚本: ` /support/support/log_file.log`

传递给脚本的环境变量

您可以在脚本中使用下表所示的环境变量。

环境变量 Description

backup_name

备份的名称。仅在后脚本中传递的变量。

backup_ddate

备份日期,格式为 yyyymmdd Variable passable in postscripts only 。

backup_time

备份时间,格式为 hmmss Variable passable in postscripts only 。

backup_phase

要在其中运行脚本的备份阶段。有效值为: pre_backup , post_backup 和 failed_backup 。在预处理脚本和后处理脚本中传递的变量。

storage_snapshots

备份中的存储快照数量。仅在后脚本中传递的变量。

storage_snapshot.#

已定义的存储快照之一,格式如下: ` <filer> : /vol/<volume> : <ontap-snapshot-name>` Variable passed in postscripts only 。

virtual_Machines

备份中的 VM 数。在预处理脚本和后处理脚本中传递的变量。

virtual_machine.#

已定义的虚拟机之一,格式如下: ` <VM name><vertical Bar><VM UID><vertical Bar><power-state><vertical Bar><VM snapshot><vertical Bar><ip-Addresses> <power-state> 具有 powed_on , powed_off 或 suspended` ` <VM snapshot>` 的值为 truepostpts

脚本超时

备份脚本的超时时间为 15 分钟,无法修改。

Perl 脚本 1 示例

以下示例 Perl 脚本将在运行备份时打印环境变量。

` # ! /usr/bin/perl` 使用警告; 使用 strict ; my $argnum ; my $logfile = "/support/support/log_env.log ; open ( FH , ">>" , $logfile )或 die $ !; foreach (排序键 %ENV ) { print FH "$_ = $FH = $= $FH ` = $=` $FHFH = $_= $FH = $FH= $n = $FH = $FH = $FH = $FH = $N = $FH = $FH= $FH= $N = $= $=

Perl 脚本 2 示例

以下示例将显示有关备份的信息。

` # ! /usr/bin/perl` 使用警告; 使用 strict ;

my $argnum ; my $logfile = "/support/support/log_env.log" ; open ( fH , ">>" , $logfile )或 die $ !;

打印 FH "backup_phase is $ENV { 'backup_phase' } \n" ; 打印 FH "Backup name $ENV { 'backup_name' } \n" ; 打印 FH "Virtual Machine $ENV { 'virtual_machine' } \n" ; 打印 FH "virtual_machine # is $ENV { 'virtual_machine.1' } ; "$ENV_time" ` "$STOR" ; "$EN_STORE' ; "$EN_STORE' { EN_STORE' } `$EN_STORE' ; 'EN_STORE' N ; 'EN_STORE' N ; 'EN_STORE' { EN_STORE' N }

print FH "PWD is $ENV { 'PWD } \n" ; print FH "invocation_ID is $ENV { 'invocation_ID' } \n" ;

print FH "="======\n" ; Close ( FH );

示例 Shell 脚本

` =======================================================================================================================================================================EN`