샘플 플러그인 스크립트 보기
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: 구성된 경우 클론 작업 후에 실행되는 스크립트를 포함합니다.
다음 표에는 샘플 스크립트에 대한 설명이 나와 있습니다.
스크립트 이름 | 설명 | 스크립트 유형입니다 |
---|---|---|
validate_sid.sh |
대상 시스템에서 사용되는 SID에 대한 추가 검사를 포함합니다. 스크립트는 SID에 다음과 같은 특성이 있는지 확인합니다.
|
정책 |
cleanup.sh |
새로 생성된 클론을 저장할 준비가 되도록 타겟 시스템을 정리합니다. 필요에 따라 파일 및 디렉토리를 보존하거나 삭제합니다. |
사전 작업 |
Mirror_the_backup.sh |
7-Mode에서 운영 중인 Data ONTAP 또는 clustered Data ONTAP을 사용하는 UNIX 환경에서 백업 작업이 발생한 이후에 볼륨을 미러링합니다. |
작업 후 |
Vault_the_backup_cDOT.sh |
클러스터 Data ONTAP를 사용할 때 UNIX 환경에서 백업 작업 후 백업을 보관합니다. |
작업 후 |
SnapManager와 함께 제공되는 스크립트는 기본적으로 Bash 셸을 사용합니다. 예제 스크립트를 실행하기 전에 운영 체제에 Bash 셸에 대한 지원이 설치되어 있는지 확인해야 합니다.
-
Bash 셸을 사용하고 있는지 확인하려면 명령 프롬프트에 "bash"를 입력합니다
오류가 표시되지 않으면 Bash 셸이 제대로 작동하고 있는 것입니다.
또는 명령 프롬프트에 어떤 -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