Skip to main content
SnapManager Oracle
本繁體中文版使用機器翻譯,譯文僅供參考,若與英文版本牴觸,應以英文版本為準。

檢視範例外掛程式指令碼

貢獻者

包含指令碼、您可以用它做為範例、說明如何製作自己的指令碼、或做為自訂指令碼的基礎。SnapManager

您可以在下列位置找到範例外掛程式指令碼:

  • <default_install_ddirectory>/plugins/examples/backup/create

  • <default_install_ddirectory>/plugins/examples/clone /建立

  • <default_install_ddirectory>/plugins/UNIX/examples/backup/creation/POST

包含範例外掛程式指令碼的目錄包含下列子目錄:

  • 原則:包含指令碼、一旦設定、就會在複製作業上執行。

  • PRE:包含在設定完成後、在複製作業之前執行的指令碼。

  • POST:包含在完成複製作業後執行的指令碼(若已設定)。

下表說明範例指令碼:

指令碼名稱 說明 指令碼類型

validate_sid.sh

包含對目標系統所用之SID的額外檢查。指令碼會檢查該SID是否具有下列特性:

  • 包含三個英數字元

  • 以字母開頭

原則

cleanup.sh

清除目標系統、以便準備好儲存新建立的複本。視需要保留或刪除檔案和目錄。

Pretask

Mirror_the_backup.sh

當您使用Data ONTAP 以7-Mode或叢集Data ONTAP 式的VMware時、在UNIX環境中執行備份作業之後、就會鏡射磁碟區。

工作後

Vault_the_backup_cDOT.sh

在使用叢集Data ONTAP 式的過程中、在UNIX環境中執行備份作業之後、保存備份資料。

工作後

根據預設、隨附的指令碼SnapManager 會使用Bash Shell。在嘗試執行任何範例指令碼之前、您必須確定作業系統已安裝對Bash Shell的支援。

  1. 若要驗證您是否正在使用Bash Shell、請在命令提示字元中輸入下列命令:「Bash」

    如果沒有看到錯誤、則表示Bash Shell運作正常。

    或者、您也可以在命令提示字元中輸入bat命令。

  2. 在下列目錄中找到指令碼:

    <installdir>/plugins/examples/clone /建立

  3. 在腳本編輯器(如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