檢視外掛程式指令碼範例
包含指令碼、您可以用它做為範例、說明如何製作自己的指令碼、或做為自訂指令碼的基礎。SnapManager
關於此工作
您可以在下列位置找到範例外掛程式指令碼:
-
「<efault_install_ddirectory>/plugins/examples/backup/cred'」
-
「<default_install_ddirectory>/plugins/examples/clone / cred'」
-
「<efault_install_ddirectory>/plugins/UNIX/examples/backup/cree/post」
包含範例外掛程式指令碼的目錄包含下列子目錄:
-
「原則」:包含指令碼、一旦設定、就會在複製作業上執行。
-
「PRE」:包含在設定完成後、在複製作業之前執行的指令碼。
-
「POST」:包含在完成複製作業後執行的指令碼(若已設定)。
下表說明範例指令碼:
指令碼名稱 | 說明 | 指令碼類型 |
---|---|---|
"validation_SID.sh" |
包含對目標系統所用之SID的額外檢查。指令碼會檢查該SID是否具有下列特性:
|
原則 |
"清理.sh" |
清除目標系統、以便準備好儲存新建立的複本。視需要保留或刪除檔案和目錄。 |
Pretask |
"ap_folling_up_Actives.sh" |
執行後續活動工作、如_SAP System Copy Guide_和TR-3442、SAP with Oracle on UNIX and NFS and NetApp Storage中所述。例如、此指令碼會刪除或修改SAP架構中的表格項目。 |
工作後 |
"OS_db_authentization_sh" |
依照SAP附註316641的建議、針對OPS$使用者調整作業系統驗證。這是如何處理外部SQL檔案的範例。 |
工作後 |
「鏡射_the_backup.sh」 |
當您使用Data ONTAP 以7-Mode或叢集Data ONTAP 式的VMware時、在UNIX環境中執行備份作業之後、就會鏡射磁碟區。 |
工作後 |
「Vault_the_backup_cDOT.sh」 |
在使用叢集Data ONTAP 式的過程中、在UNIX環境中執行備份作業之後、保存備份資料。 |
工作後 |
根據預設、隨附的指令碼SnapManager 會使用Bash Shell。在嘗試執行任何範例指令碼之前、您必須確定作業系統已安裝對Bash Shell的支援。
-
若要驗證您是否正在使用Bash Shell、請在命令提示字元中輸入下列命令:
《* Basash*》
如果沒有看到錯誤、則表示Bash Shell運作正常。
或者、您也可以在命令提示字元中輸入「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
相關資訊