La version française est une traduction automatique. La version anglaise prévaut sur la française en cas de divergence.

Affichage des exemples de scripts de plug-in

Contributeurs

SnapManager comprend des scripts que vous pouvez utiliser comme exemples pour créer vos propres scripts ou comme base pour vos scripts personnalisés.

Vous trouverez les exemples de scripts de plug-in à l’emplacement suivant :

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

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

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

Le répertoire contenant les exemples de scripts de plug-in comprend les sous-répertoires suivants :

  • Policy : contient des scripts qui, lorsqu’ils sont configurés, s’exécutent toujours sur l’opération de clonage.

  • Pre : contient les scripts qui, lorsqu’ils sont configurés, s’exécutent avant l’opération de clonage.

  • Post : contient des scripts qui, lorsqu’ils sont configurés, s’exécutent après l’opération de clonage.

Le tableau suivant décrit les exemples de scripts.

Nom de script Description Type de script

validate_sid.sh

Contient des vérifications supplémentaires de l’ID système utilisé sur le système cible. Le script vérifie que le SID présente les caractéristiques suivantes :

  • Contient trois caractères alphanumériques

  • Commence par une lettre

Politique

cleanup.sh

Nettoie le système cible afin qu’il soit prêt à stocker le nouveau clone créé. Préserve ou supprime les fichiers et les répertoires selon les besoins.

Prétâche

Mirror_the_backup.sh

Mise en miroir des volumes après l’opération de sauvegarde dans un environnement UNIX lorsque vous utilisez Data ONTAP en 7-mode ou clustered Data ONTAP.

Post-tâche

Vault_the_backup_cDOT.sh

Bascule la sauvegarde après la sauvegarde dans un environnement UNIX lorsque vous utilisez clustered Data ONTAP.

Post-tâche

Les scripts fournis avec SnapManager utilisent par défaut le shell BASH. Vous devez vous assurer que la prise en charge du shell BASH est installée sur votre système d’exploitation avant de tenter d’exécuter l’un des scripts types.

  1. Pour vérifier que vous utilisez le shell BASH, entrez la commande suivante à l’invite de commande : bash

    Si vous ne voyez pas d’erreur, le shell BASH fonctionne correctement.

    Vous pouvez également saisir la commande qui-bash à l’invite de commande.

  2. Recherchez le script dans le répertoire suivant :

    <installdir>/plugins/exemples/clone/create

  3. Ouvrez le script dans un éditeur de script tel que vi.

Exemple de script

L’exemple de script personnalisé suivant valide les noms SID de base de données et empêche l’utilisation de noms non valides dans la base de données clonée. Il comprend trois opérations (vérification, description et exécution), qui sont appelées après l’exécution du script. Le script inclut également la gestion des messages d’erreur avec les codes 0, 4 et 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