Cette page explique comment ajouter des scripts à un modèle de sauvegarde. Il décrit les différentes phases exécutées par un script lors d'une tâche de sauvegarde.
Vous pouvez écrire vos scripts et les exécuter pour effectuer une action au début d'une tâche de sauvegarde, pendant celle-ci ou après sa fin. Ils sont également appelés "scripts pré- et post-script".
Emplacement des scripts
Un dossier de script est créé automatiquement lors de l'installation de l'agent, là où le système de fichiers ou la base de données à protéger est en cours d'exécution. Pour les exécuter, vous devez placer les scripts dans les dossiers suivants:
- Pour l'hôte Windows:
\Program Files\Google Cloud Backup and DR\scripts
- Pour un hôte Linux:
/act/scripts
et définissez le script comme exécutable (chmod 755 *.sh)
Phases du script
Les scripts s'exécutent dans les phases suivantes. Si votre script ne s'exécute pas, vérifiez qu'il se trouve dans le dossier scripts.
- INIT: cette phase commence lorsque l'appliance de sauvegarde/restauration se connecte à l'agent. Au cours de cette phase, la tâche est initialisée et les identifiants sont validés.
- PRE: cette phase commence juste avant l'opération principale de la tâche. Pour les instantanés, cette phase commence avant le blocage de l'application. Pour les tâches de type "mount", cela se produit après la mise en correspondance des appareils avec l'hôte, mais avant le démarrage des opérations basées sur des agents telles que le réexamen, l'importation et l'installation de systèmes de fichiers.
- POST: cette phase commence immédiatement après la fin de l'opération principale de la tâche. Pour les tâches de type sauvegarde, cela se produit après le dégivrage de l'application. Pour les jobs de type "mount", cette phase commence une fois toutes les opérations d'importation, de montage ou de mise en ligne des applications terminées.
- FINAL (FINAL) : cette phase correspond à la fin de la tâche. Sauf si le script renvoie un code non nul qui entraîne l'échec de la tâche, la tâche est terminée.
- ABORT: cette phase gère les tâches abandonnées en cas d'échec.
Exemple: scripts
L'exemple suivant montre comment exécuter un script côté hôte à différentes phases du processus de tâche de sauvegarde. Il comporte cinq scripts qui affichent la date ou l'heure, le nom de l'application (nom du système de fichiers ou de la base de données), le type de tâche, le nom de la tâche, la valeur de rétention des journaux en jours et un texte indiquant la phase de la tâche de sauvegarde en cours de traitement.
```sh
$ cat /act/scripts/init.sh
#!/bin/sh
if [ "${ACT_JOBTYPE}" = "logbackup" ]; then
echo `date` "${ACT_JOBNAME}_${ACT_APPNAME}_ARCHIVELOG_BACKUP JobPhase:INIT" >> /tmp/backup_status.log
else
echo `date` "${ACT_JOBNAME}_${ACT_APPNAME}_INCREMENTAL_BACKUP JobPhase:INIT" >> /tmp/backup_status.log
fi
$ cat /act/scripts/pre.sh
#!/bin/sh
if [ "${ACT_JOBTYPE}" = "logbackup" ]; then
echo `date` "${ACT_JOBNAME}_${ACT_APPNAME}_ARCHIVELOG_BACKUP JobPhase:PRE" >> /tmp/backup_status.log
else
echo `date` "${ACT_JOBNAME}_${ACT_APPNAME}_INCREMENTAL_BACKUP JobPhase:PRE" >> /tmp/backup_status.log
fi
$ cat /act/scripts/post.sh
#!/bin/sh
if [ "${ACT_JOBTYPE}" = "logbackup" ]; then
echo `date` "${ACT_JOBNAME}_${ACT_APPNAME}_ARCHIVELOG_BACKUP JobPhase:POST" >> /tmp/backup_status.log
else
echo `date` "${ACT_JOBNAME}_${ACT_APPNAME}_INCREMENTAL_BACKUP JobPhase:POST" >> /tmp/backup_status.log
fi
$ cat /act/scripts/fini.sh
#!/bin/sh
if [ "${ACT_JOBTYPE}" = "logbackup" ]; then
echo `date` "${ACT_JOBNAME}_${ACT_APPNAME}_ARCHIVELOG_BACKUP JobPhase:FINAL" >> /tmp/backup_status.log
else
echo `date` "${ACT_JOBNAME}_${ACT_APPNAME}_INCREMENTAL_BACKUP JobPhase:FINAL" >> /tmp/backup_status.log
fi
$ cat /act/scripts/abort.sh
#!/bin/sh
if [ "${ACT_JOBTYPE}" = "logbackup" ]; then
echo `date` "${ACT_JOBNAME}_${ACT_APPNAME}_ARCHIVELOG_BACKUP JobPhase:ABORT" >> /tmp/backup_status.log
else
echo `date` "${ACT_JOBNAME}_${ACT_APPNAME}_INCREMENTAL_BACKUP JobPhase:ABORT" >> /tmp/backup_status.log
fi
```
Dans l'exemple précédent, ACT_JOBTYPE = logbackup
indique que la tâche en cours d'exécution est une tâche de sauvegarde de journaux, et non une tâche de sauvegarde complète de la base de données.
Il se peut que vous n'ayez pas besoin d'exécuter les cinq phases pour obtenir la sortie de journal de votre choix. Vous ne pouvez utiliser que les phases d'initialisation et de finalisation pour indiquer le début et la fin du processus de sauvegarde.
Vous pouvez également personnaliser les scripts pour effectuer d'autres tâches, comme arrêter un service ou exécuter d'autres commandes.
Ajouter des scripts à un modèle de sauvegarde
Suivez les instructions ci-dessous pour ajouter les scripts à un modèle de sauvegarde.
- Cliquez sur Plans de sauvegarde, puis sélectionnez Modèles dans la liste déroulante.
- Sélectionnez un modèle qui inclut une stratégie OnVault. La page Modèles s'ouvre avec le modèle de sauvegarde sélectionné.
- Dans la section Règles de la page Modèles, cliquez sur + Ajouter à côté de Instantané.
- Cliquez sur Paramètres de stratégie avancés.
Faites défiler la page jusqu'à Nom du script, puis copiez et collez le script suivant:
path=init.sh:phase=init;path=pre.sh:phase=pre;path=post.sh:phase=post;path=fini.sh:phase=final:timeout=300;path=abort.sh:phase=abort
Cliquez sur Save Changes (Enregistrer les modifications).
Exécutez une tâche à la demande.
Le résultat s'affiche pour deux bases de données différentes. L'une est une tâche de sauvegarde des journaux, et l'autre un instantané incrémentiel.
$ cat /tmp/backup_status.log Mer 22 nov 06:11:49 UTC 2023 Job_0275501_ORCLCDB_ARCHIVELOG_BACKUP JobPhase:INIT Mer 22 nov 06:13:52 UTC 2023 Job_0275501_ORCLCDB_ARCHIVELOG_BACKUP JobPhase:PRE Mer 22 nov 06:15:01 UTC 2023 Job_0275501_ORCLCDB_ARCHIVELOG_BACKUP JobPhase:POST Mer 22 nov 06:15:01 UTC 2023 Job_0275501_ORCLCDB_ARCHIVELOG_BACKUP JobPhase:FINAL Mer 22 nov 06:18:00 UTC 2023 Job_0275637_SMALL_INCREMENTAL_BACKUP JobPhase:INIT Mer 22 nov 06:20:15 UTC 2023 Job_0275637_SMALL_INCREMENTAL_BACKUP JobPhase:PRE Mer 22 nov 06:22:06 UTC 2023 Job_0275637_SMALL_INCREMENTAL_BACKUP JobPhase:POST Mer 22 nov 06:22:06 UTC 2023 Job_0275637_SMALL_INCREMENTAL_BACKUP JobPhase:FINAL
Transmettre des variables d'environnement dans un fichier journal
Vous pouvez exporter les informations d'environnement de la tâche vers le script à l'aide des variables d'environnement de la liste suivante commençant par ACT_
.
Toutes les variables d'environnement ne s'appliquent pas à tous les types de jobs.
ACT_APPID
: ID de la base de données de l'application.ACT_APPNAME
: nom de l'application.ACT_HOSTNAME
: nom de l'hôte cible de cette tâche.ACT_JOBNAME
: nom de la tâche.ACT_JOBTYPE
: version textuelle de la classe de travail.ACT_LOGSMART_TYPE
: la seule valeur valide est "db". Il doit être présent pour que les journaux de la base de données soient capturés.ACT_OPTIONS
: options de stratégie qui s'appliquent à cette tâcheACT_PHASE
: chaîne de texte décrivant la phase de la tâche.ACT_POLICY
: nom de la règle associée à cette tâche.ACT_POLICYOPT_logbackupretention
: nombre de jours de conservation pour les tâches de sauvegarde des journaux. Cette option n'apparaît que dans les tâches de sauvegarde des journaux de base de données.ACT_PROFILE
: nom du profil.ACT_SCRIPT_TMOUT
: délai avant expiration de la superscripting. Si la réponse n'est pas reçue dans le délai avant expiration (60 secondes par défaut), le script échoue.ACT_SOURCEHOST
: nom de l'hôte qui était la source de cette application.ACT_TEMPLATE
: nom du modèle associé à la tâche.ACT_TIMEOUT
: durée définie du script, en secondes. Si le script ne se termine pas avant l'expiration du délai, la tâche échoue.ACT_VOLUMES
: pour les applications génériques, liste des volumes configurés pour la sauvegarde. Si vous avez besoin d'aide pour connaître les variables d'environnement que vous pouvez utiliser, ajoutez cette ligne à votre script.echo printenv >> /tmp/backup_status.log