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

建立工作前、工作後及原則指令碼

貢獻者

利用此功能、您可以針對備份、還原及複製作業的預先處理活動、後處理活動及原則工作、建立指令碼。SnapManager您必須將指令碼放在正確的安裝目錄中、才能執行SnapManager 該作業系統的預先處理活動、後處理活動和原則工作。

  • Pretask和任務後指令碼內容*

所有指令碼都必須包含下列項目:

  • 特定作業(檢查、說明及執行)

  • (選用)預先定義的環境變數

  • 特定錯誤處理代碼(傳回代碼(rc))

註 您必須包含正確的錯誤處理代碼、才能驗證指令碼。

您可以將pretask指令碼用於許多用途、例如在SnapManager 執行動作之前先清理磁碟空間。例如SnapManager 、您也可以使用工作後指令碼來預估、以判斷是否有足夠的磁碟空間來完成作業。

原則工作指令碼內容

您可以執行原則指令碼、而不需使用檢查、描述及執行等特定作業。指令碼包含預先定義的環境變數(選用)和特定的錯誤處理程式碼。

原則指令碼會在備份、還原及複製作業之前執行。

支援的格式

副檔名為.cmd的命令檔可做為指令碼和指令碼後置處理。

註 如果您選取Shell指令碼檔案、SnapManager 則無法回應此動作。若要解決此問題、您必須在外掛程式目錄中提供命令檔案、SnapManager 然後再次執行此動作。

指令碼安裝目錄

安裝指令碼的目錄會影響指令碼的使用方式。您可以將指令碼放在目錄中、並在備份、還原或複製作業開始之前或之後執行指令碼。您必須將指令碼放在表格中指定的目錄中、並在指定備份、還原或複製作業時、以選用的方式使用。

註 在使用指令碼執行SnapManager 完動作之前、您必須確保plugins目錄具有執行檔權限。

活動

備份

還原

複製

預先處理

<default_installation_directory>\plugins\backup\creation\pre

<default_installation_directory>\plugins\reet\creation\pre

<default_installation_directory>\plugins\clone \creation\pre

後處理

<default_installation_directory>\plugins\backup\creation\POST

<default_installation_directory>\plugins\還原\creation\POST

<default_installation_directory>\plugins\clone \creation\POST

原則型

<default_installation_directory>\plugins\backup\creation\policy

<default_installation_directory>\plugins\還原\creation\policy

<default_installation_directory>\plugins\clone \creation\policy

範例指令碼位置

以下是安裝目錄路徑中備份與複製作業的一些前置與工作後指令碼範例:

  • <default_installation_directory>\plugins\examples\backup\creation\pre

  • <default_installation_directory>\plugins\examples\backup\creation\POST

  • <default_installation_directory>\plugins\examples\clone \creation\pre

  • <default_installation_directory>\plugins\examples\clone \creation\POST

您可以在指令碼中變更的內容

如果您要建立新的指令碼、則只能變更「描述」和「執行」作業。每個指令碼都必須包含下列變數:內容、逾時和參數。

您在指令碼的「描述」功能中所描述的變數、必須在指令碼開頭時聲明。您可以在參數=()中新增參數值、然後在執行功能中使用參數。

範例指令碼

以下是使用者指定的傳回碼範例指令碼、用於估算SnapManager 出駐留在該主機上的空間:

@echo off
REM $Id: //depot/prod/capstan/Rcapstan_ganges/src/plugins/windows/examples/clone/create/policy/validate_sid.cmd#1 $
REM $Revision: #1 $ $Date: 2011/12/06 $
REM
REM

set /a EXIT=0

set name="Validate SID"
set description="Validate SID used on the target system"
set parameter=()

rem reserved system IDs
set 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")

if /i "%1" == "-check" goto :check
if /i "%1" == "-execute" goto :execute
if /i "%1" == "-describe" goto :describe

:usage:
	echo usage: %0 "{ -check | -describe | -execute }"
	set /a EXIT=99
	goto :exit

:check
	set /a EXIT=0
	goto :exit

:describe
	echo SM_PI_NAME:%name%
	echo SM_PI_DESCRIPTION:%description%
	set /a EXIT=0
	goto :exit

:execute
	set /a EXIT=0

	rem SM_TARGET_SID must be set
	if "%SM_TARGET_SID%" == "" (
		set /a EXIT=4
		echo SM_TARGET_SID not set
		goto :exit
	)

	rem exactly three alphanumeric characters, with starting with a letter
	echo %SM_TARGET_SID% | findstr "\<[a-zA-Z][a-zA-Z0-9][a-zA-Z0-9]\>" >nul
	if %ERRORLEVEL% == 1 (
		set /a EXIT=4
		echo SID is defined as a 3 digit value starting with a letter. [%SM_TARGET_SID%] is not valid.
		goto :exit
	)

	rem not a SAP reserved SID
	echo %INVALID_SIDS% | findstr /i \"%SM_TARGET_SID%\" >nul
	if %ERRORLEVEL% == 0 (
		set /a EXIT=4
		echo SID [%SM_TARGET_SID%] is reserved by SAP
		goto :exit
	)

	goto :exit



:exit
	echo Command complete.
	exit /b %EXIT%