查看插件脚本示例
SnapManager 提供了一些脚本,您可以使用这些脚本作为示例来创建自己的脚本,也可以作为自定义脚本的基础。
-
关于此任务 *
您可以在以下位置找到插件脚本示例:
-
<default_install_directory>/plugins/examples/backup/create
-
<default_install_directory>/plugins/examples/clone/create
-
<default_install_directory>/plugins/unix/examples/backup/create/post
包含示例插件脚本的目录包含以下子目录:
-
policy
:包含配置后始终在克隆操作上运行的脚本。 -
PRE
:包含配置后在克隆操作之前运行的脚本。 -
POST
:包含配置后在克隆操作之后运行的脚本。
下表介绍了示例脚本:
脚本名称 | Description | 脚本类型 |
---|---|---|
|
包含对目标系统上使用的 SID 的其他检查。该脚本将检查 SID 是否具有以下特征:
|
策略 |
|
清理目标系统,以便准备好存储新创建的克隆。根据需要保留或删除文件和目录。 |
预请求 |
|
执行_SAP系统副本指南_和TR-3442:SAP与基于UNIX和NFS的Oracle以及NetApp存储中所述的跟进活动任务。例如、此脚本将删除或修改SAP架构中的表条目。 |
任务后 |
|
按照SAP注释316641中的建议、调整OPS$用户的操作系统身份验证。下面是如何处理外部SQL文件的示例。 |
任务后 |
|
在使用 7- 模式 Data ONTAP 或集群模式 Data ONTAP 的 UNIX 环境中执行备份操作后,对卷进行镜像。 |
任务后 |
|
在使用集群模式 Data ONTAP 的 UNIX 环境中执行备份操作后,将存储备份。 |
任务后 |
默认情况下,随 SnapManager 提供的脚本使用 bash shell 。在尝试运行任何示例脚本之前,您必须确保操作系统上已安装对 bash shell 的支持。
-
要验证是否正在使用bash shell、请在命令提示符处输入以下命令:
* bash*
如果未看到错误,则表示 bash shell 运行正常。
或者、您也可以在命令提示符处输入`which—bash`命令。
-
在以下目录中找到此脚本:
<installdir>/plugins/examples/clone/create
-
在 vi 等脚本编辑器中打开此脚本。
示例脚本
以下示例自定义脚本将验证数据库 SID 名称,并防止克隆的数据库中使用无效名称。它包括三个操作(检查,描述和执行),这些操作是在运行脚本后调用的。该脚本还包括错误消息处理,代码为 0 , 4 和 >4 。
EXIT=0 name="Validate SID" description="Validate SID used on the target system" parameter=() # reserved system IDs INVALID_SIDS=("ADD" "ALL" "AND" "ANY" "ASC" "COM" "DBA" "END" "EPS" "FOR" "GID" "IBM" "INT" "KEY" "LOG" "MON" "NIX" "NOT" "OFF" "OMS" "RAW" "ROW" "SAP" "SET" "SGA" "SHG" "SID" "SQL" "SYS" "TMP" "UID" "USR" "VAR") function _exit { rc=$1 echo "Command complete." return $rc} function usage { echo "usage: $(basename $0) { -check | -describe | -execute }" _exit 99} function describe { echo "SM_PI_NAME:$name" echo "SM_PI_DESCRIPTION:$description" _exit 0} function check { _exit 0} function execute { IFS=\$ myEnv=$(env) for a in ${paramteter[@]}; do key=$(echo ${$a} | awk -F':' '{ print $1 }') val=$(echo $myEnv | grep -i -w $key 2>/dev/null | awk -F'=' '{ print $2 }') if [ -n "$val" ] ; then state="set to $val" else state="not set" #indicate a FATAL error, do not continue processing ((EXIT=+4)) fi echo "parameter $key is $state" done ###################################################################### # additional checks # Use SnapManager environment variable of SM_TARGET_SID if [ -n "$SM_TARGET_SID" ] ; then if [ ${#SM_TARGET_SID} -ne 3 ] ; then echo "SID is defined as a 3 digit value, [$SM_TARGET_SID] is not valid." EXIT=4 else echo "${INVALID_SIDS[@]}" | grep -i -w $SM_TARGET_SID >/dev/null 2>&1 if [ $? -eq 0 ] ; then echo "The usage of SID [$SM_TARGET_SID] is not supported by SAP." ((EXIT+=4)) fi fi else echo "SM_TARGET_SID not set" EXIT=4 fi _exit $EXIT} # Include the 3 required operations for clone plugin case $(echo "$1" | tr [A-Z] [a-z]) in -check ) check ;; -describe ) describe ;; -execute ) execute ;; * ) echo "unknown option $1" usage ;; esac
-
相关信息 *