SnapManager Oracle
La versione in lingua italiana fornita proviene da una traduzione automatica. Per eventuali incoerenze, fare riferimento alla versione in lingua inglese.

Visualizzazione di script plug-in di esempio

Collaboratori

SnapManager include script che è possibile utilizzare come esempio per creare script personalizzati o come base per gli script personalizzati.

Gli script dei plug-in di esempio si trovano nella seguente posizione:

  • <default_install_directory>/plugin/esempi/backup/create

  • <default_install_directory>/plugin/esempi/clone/create

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

La directory che contiene gli script dei plug-in di esempio include le seguenti sottodirectory:

  • Policy: Contiene script che, una volta configurati, vengono eseguiti sempre sull’operazione clone.

  • Pre: Contiene script che, una volta configurati, vengono eseguiti prima dell’operazione di clonazione.

  • Post: Contiene script che, se configurati, vengono eseguiti dopo l’operazione di cloni.

La seguente tabella descrive gli script di esempio:

Nome dello script Descrizione Tipo di script

validate_sid.sh

Contiene controlli aggiuntivi per il SID utilizzato nel sistema di destinazione. Lo script verifica che il SID abbia le seguenti caratteristiche:

  • Contiene tre caratteri alfanumerici

  • Inizia con una lettera

Policy

cleanup.sh

Pulisce il sistema di destinazione in modo che sia pronto per memorizzare il clone appena creato. Conserva o elimina file e directory in base alle esigenze.

Pretask

Mirror_the_backup.sh

Esegue il mirroring dei volumi dopo l’esecuzione dell’operazione di backup in un ambiente UNIX quando si utilizza Data ONTAP in 7-Mode o Clustered Data ONTAP.

Post-task

Vault_the_backup_cDOT.sh

Esegue il vault del backup dopo che l’operazione di backup ha luogo in un ambiente UNIX quando si utilizza Clustered Data ONTAP.

Post-task

Gli script forniti con SnapManager utilizzano la shell BASH per impostazione predefinita. Prima di eseguire uno qualsiasi degli script di esempio, è necessario assicurarsi che il supporto per la shell BASH sia installato sul sistema operativo.

  1. Per verificare che si stia utilizzando LA shell BASH, immettere il seguente comando al prompt dei comandi: bash

    Se non viene visualizzato alcun errore, LA shell BASH funziona correttamente.

    In alternativa, è possibile immettere il comando quale-bash al prompt dei comandi.

  2. Individuare lo script nella seguente directory:

    <installdir>/plugin/esempi/clone/create

  3. Aprire lo script in un editor di script come vi.

Script di esempio

Il seguente script personalizzato di esempio convalida i nomi SID del database e impedisce l’utilizzo di nomi non validi nel database clonato. Include tre operazioni (check, descrivi ed esegui), che vengono chiamate dopo l’esecuzione dello script. Lo script include anche la gestione dei messaggi di errore con i codici 0, 4 e >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