Affichage des exemples de scripts de plug-in
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 :
|
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.
-
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.
-
Recherchez le script dans le répertoire suivant :
<installdir>/plugins/exemples/clone/create
-
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