日本語は機械翻訳による参考訳です。内容に矛盾や不一致があった場合には、英語の内容が優先されます。

サンプルのプラグインスクリプトの表示

寄稿者 このページの PDF をダウンロード

SnapManager には、独自のスクリプトを作成する方法、またはカスタムスクリプトのベースとして使用できるスクリプトが用意されています。

サンプルプラグインスクリプトは、次の場所にあります。

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

  • <default_install_directory>/plugins/examples/clone/create

  • <default_install_directory>/plugins/unix/examples/backup/create/post

サンプルのプラグインスクリプトを含むディレクトリには、次のサブディレクトリがあります。

  • Policy :設定されている場合に常にクローン処理で実行されるスクリプトが含まれます。

  • PRE :クローン処理の前に実行されるスクリプトを設定した場合に、そのスクリプトが含まれます。

  • Post :設定された場合にクローニング処理のあとに実行されるスクリプトを格納します。

次の表に、サンプルスクリプトを示します。

スクリプト名 説明 スクリプトのタイプ

validate_sid.sh

ターゲットシステムで使用されている SID に対する追加のチェックが含まれます。スクリプトは、 SID に次の特性があるかどうかを確認します。

  • 3 つの英数字で構成されます

  • 先頭の文字はアルファベットにします

ポリシー

cleanup.sh

ターゲットシステムをクリーンアップして、新しく作成したクローンを格納できるようにします。必要に応じて、ファイルとディレクトリを保持または削除します。

事前課題

Mirror_the_backup.sh

Data ONTAP 7-Mode または clustered Data ONTAP を使用している場合、バックアップ処理の実行後にボリュームがミラーリングされます。

タスク後

Vault_the_backup_cDOT.sh

clustered Data ONTAP を使用している UNIX 環境では、バックアップ処理後にバックアップをバックアップします。

タスク後

SnapManager で提供されるスクリプトは、デフォルトで bash シェルを使用します。サンプルスクリプトを実行する前に、オペレーティングシステムに bash シェルのサポートがインストールされていることを確認する必要があります。

  1. bash シェルを使用していることを確認するには、コマンドプロンプトで次のコマンドを入力します

    エラーが表示されない場合は、 bash シェルは正常に動作しています。

    または、コマンドプロンプトで bash コマンドを入力することもできます。

  2. 次のディレクトリでスクリプトを探します。

    <installdir>/plugins/examples/clone/create

  3. vi のようなスクリプトエディタでスクリプトを開きます。

サンプルスクリプト

次のサンプルのカスタムスクリプトでは、データベースの SID 名を検証し、クローンデータベースで無効な名前が使用されないようにしています。このスクリプトには、スクリプトの実行後に呼び出される 3 つの操作(チェック、説明、実行)が含まれています。このスクリプトには、コード 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