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

Création de scripts de stratégie, de post-tâche et de prétâche

Contributeurs

SnapManager vous permet de créer les scripts pour l’activité de prétraitement, les activités de post-traitement et les tâches de stratégie des opérations de sauvegarde, de restauration et de clonage. Vous devez placer les scripts dans le répertoire d’installation approprié pour exécuter l’activité de prétraitement, de post-traitement et les tâches de stratégie de l’opération SnapManager.

Contenu de script de prétâche et de post-tâche

Tous les scripts doivent inclure ce qui suit :

  • Opérations spécifiques (vérification, description et exécution)

  • (Facultatif) variables d’environnement prédéfinies

  • Code de gestion d’erreur spécifique (code retour (rc)))

Remarque Vous devez inclure le code de traitement d’erreur correct pour valider le script.

Vous pouvez utiliser les scripts de prétâche à de nombreuses fins, par exemple pour nettoyer un espace disque avant le démarrage de l’opération SnapManager. Vous pouvez également utiliser les scripts de post-tâche, par exemple, pour estimer si SnapManager dispose de suffisamment d’espace disque pour mener à bien l’opération.

Contenu du script de tâche de stratégie

Vous pouvez exécuter le script de stratégie sans utiliser des opérations spécifiques telles que la vérification, la description et l’exécution. Le script inclut les variables environnementales prédéfinies (facultatives) et le code de traitement spécifique des erreurs.

Le script de règles est exécuté avant les opérations de sauvegarde, de restauration et de clonage.

Format pris en charge

Un fichier script shell avec une extension .sh peut être utilisé comme prescripteur et post-script.

Répertoire d’installation script

Le répertoire dans lequel vous installez le script affecte la façon dont il est utilisé. Vous pouvez placer les scripts dans le répertoire et exécuter le script avant ou après l’opération de sauvegarde, de restauration ou de clonage. Vous devez placer le script dans le répertoire spécifié dans la table et l’utiliser sur une base facultative lorsque vous spécifiez l’opération de sauvegarde, de restauration ou de clonage.

Remarque Vous devez vous assurer que le répertoire plugins dispose de l’autorisation exécutable avant d’utiliser les scripts pour l’opération SnapManager.
Activité Sauvegarde Restaurer Clonage

Prétraitement

<default_installation_directory>/plugins/backup/create/pre

<default_installation_directory>/plugins/restore/create/pre

<default_installation_directory>/plugins/clone/create/pre

Post-traitement

<default_installation_directory>/ plugins/sauvegarde/création/post

<default_installation_directory>/plugins/restore/create/post

<default_installation_directory>/plugins/clone/create/post

Basée sur des règles

<default_installation_directory>/plugins/sauvegarde/create/policy

<default_installation_directory>/plugins/restore/create/policy

<default_installation_directory>/plugins/clone/create/policy

Exemples d’emplacements de scripts

Voici quelques exemples de scripts de prétâche et de post-tâche pour les opérations de sauvegarde et de clonage disponibles dans le chemin du répertoire d’installation :

  • <default_installation_directory>/plugins/exemples/backup/create/pre

  • <default_installation_directory>/plugins/exemples/backup/create/post

  • <default_installation_directory>/plugins/exemples/clone/create/pre

  • <default_installation_directory>/plugins/exemples/clone/create/post

Ce que vous pouvez changer dans le script

Si vous créez un nouveau script, vous pouvez uniquement modifier les opérations décrire et exécuter. Chaque script doit contenir les variables suivantes : contexte, temporisation et paramètre.

Les variables que vous avez décrites dans la fonction décrire du script doivent être déclarées au début du script. Vous pouvez ajouter de nouvelles valeurs de paramètre dans parameter=(), puis utiliser les paramètres dans la fonction execute.

Exemple de script

Voici un exemple de script avec un code de retour spécifié par l’utilisateur pour estimer l’espace dans l’hôte SnapManager :

    #!/bin/bash
    # $Id: //depot/prod/capstan/main/src/plugins/unix/examples/backup/create/pre/disk_space_estimate.sh#5 $
    name="disk space estimation ($(basename $0))"
    description="pre tasks for estimating the space on the target system"
    context=
    timeout="0"
    parameter=()
    EXIT=0
    PRESERVE_DIR="/tmp/preserve/$(date +%Y%m%d%H%M%S)"
    function _exit {
       rc=$1
       echo "Command complete."
       exit $rc
    }
    function usage {
       echo "usage: $(basename $0) { -check | -describe | -execute }"
       _exit 99
    }
    function describe {
       echo "SM_PI_NAME:$name"
       echo "SM_PI_DESCRIPTION:$description"
       echo "SM_PI_CONTEXT:$context"
       echo "SM_PI_TIMEOUT:$timeout"
       IFS=^
       for entry in ${parameter[@]}; do
           echo "SM_PI_PARAMETER:$entry"
       done
       _exit 0
    }
    function check {
       _exit 0
    }
    function execute {
       echo "estimating the space on the target system"
       # Shell script to monitor or watch the disk space
       # It will display alert message, if the (free available) percentage
       # of space is >= 90%
       # ----------------------------------------------------------------------
       # Linux shell script to watch disk space (should work on other UNIX oses )
       # set alert level 90% is default
       ALERT=90
       df -H | grep -vE '^Filesystem|tmpfs|cdrom' | awk '{ print $5 " " $1 }' | while read output;
       do
         #echo $output
         usep=$(echo $output | awk '{ print $1}' | cut -d'%' -f1  )
         partition=$(echo $output | awk '{ print $2 }' )
       if [ $usep -ge $ALERT ]; then
           echo "Running out of space \"$partition ($usep%)\" on $(hostname) as on $(date)" |
       fi
       done
      _exit 0
     }
    function preserve {
        [ $# -ne 2 ] && return 1
        file=$1
        save=$(echo ${2:0:1} | tr [a-z] [A-Z])
        [ "$save" == "Y" ] || return 0
        if [ ! -d "$PRESERVE_DIR" ] ; then
           mkdir -p "$PRESERVE_DIR"
           if [ $? -ne 0 ] ; then
               echo "could not create directory [$PRESERVE_DIR]"
               return 1
           fi
        fi
        if [ -e "$file" ] ; then
            mv "$file" "$PRESERVE_DIR/."
        fi
        return $?
    }
    case $(echo $1 | tr [A-Z] [a-z]) in
        -check)    check
                  ;;
        -execute)  execute
                  ;;
        -describe) describe
                  ;;
     *)         echo "unknown option $1"
              usage
              ;;
     esac