查看插件脚本示例
SnapManager 提供了一些脚本,您可以使用这些脚本作为示例来创建自己的脚本,也可以作为自定义脚本的基础。
您可以在以下位置找到插件脚本示例:
-
<default_install_directory>/plugins/examples/backup/create
-
<default_install_directory>/plugins/examples/clone/create
-
<default_install_directory>/plugins/unix/examples/backup/create/post
包含示例插件脚本的目录包含以下子目录:
-
策略:包含配置后始终在克隆操作上运行的脚本。
-
PRE :包含配置后在克隆操作之前运行的脚本。
-
POST :包含配置后在克隆操作之后运行的脚本。
下表介绍了示例脚本:
| 脚本名称 | Description | 脚本类型 |
|---|---|---|
validate_sid.sh |
包含对目标系统上使用的 SID 的其他检查。该脚本将检查 SID 是否具有以下特征:
|
策略 |
cleanup.sh |
清理目标系统,以便准备好存储新创建的克隆。根据需要保留或删除文件和目录。 |
预请求 |
Mirror_the_backup.sh |
在使用 7- 模式 Data ONTAP 或集群模式 Data ONTAP 的 UNIX 环境中执行备份操作后,对卷进行镜像。 |
任务后 |
Vault_the_backup_cDOT.sh |
在使用集群模式 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