Mantieni tutto organizzato con le raccolte
Salva e classifica i contenuti in base alle tue preferenze.
Questa pagina spiega come aggiungere script a un modello di backup. Descrive
le diverse fasi che uno script esegue durante un job di backup.
Puoi scrivere gli script ed eseguirli per eseguire un'azione all'inizio di un job di backup, durante o al termine. Sono chiamati anche script pre
e post.
Posizione degli script
Durante l'installazione dell'agente viene creata automaticamente una cartella di script in cui è in esecuzione il file system o il database che necessita di protezione. Per poterli eseguire, devi posizionare gli script nelle seguenti cartelle:
Per l'organizzatore Windows: \Program Files\Google Cloud Backup and DR\scripts
Per l'host Linux: /act/scripts e imposta lo script come eseguibile (chmod 755 *.sh)
Fasi dello script
Gli script vengono eseguiti nelle seguenti fasi. Se lo script non viene eseguito, controlla se si trova nella cartella degli script.
INIT: questa fase inizia quando l'appliance di backup/recupero si connette all'agente. In questa fase, il job viene inizializzato e le credenziali vengono verificate.
PRE: questa fase inizia appena prima dell'operazione principale del job.
Per gli snapshot, questa fase inizia prima del blocco dell'applicazione. Per i job di tipo mount, questo avviene dopo che i dispositivi sono stati mappati all'host, ma prima dell'avvio di operazioni basate su agenti come la nuova scansione, l'importazione e il montaggio dei file system.
POST: questa fase inizia immediatamente dopo il completamento dell'operazione principale del job. Per i job di tipo di backup, questo avviene dopo lo sblocco dell'applicazione. Per i job di tipo mount, questa fase inizia al termine di tutte le operazioni di importazione, montaggio o messa online delle applicazioni.
FINAL: questa fase è la fine del job. A meno che lo script non restituisca un codice diverso da zero che causa l'errore del job, il job è completato.
ABORT: questa fase gestisce i job interrotti in caso di errore.
Esempio: script
L'esempio seguente mostra come eseguire uno script lato host nelle varie fasi del processo del job di backup. Contiene cinque script che stampano la data o l'ora, il nome dell'app (nome del file system o del database), il tipo di job, il nome del job, il valore di conservazione dei log in giorni e il testo per indicare la fase del job di backup in elaborazione.
```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```
Nell'esempio precedente, ACT_JOBTYPE = logbackup indica che il job in esecuzione è un'attività di backup dei log anziché un'attività di backup completo del database.
Potrebbe non essere necessario eseguire tutte e cinque le fasi per ottenere l'output del log scelto.
Puoi utilizzare solo le fasi di inizializzazione e finale per indicare l'inizio e la fine della procedura di backup.
Puoi anche personalizzare gli script per eseguire altre attività, ad esempio interrompere un servizio o eseguire altri comandi.
Aggiungere script a un modello di backup
Segui le istruzioni riportate di seguito per aggiungere gli script a un
modello di backup.
Fai clic su Piani di backup e seleziona Modelli dall'elenco a discesa.
Seleziona un modello che includa un criterio OnVault.
Viene visualizzata la pagina Modelli con il modello di backup selezionato.
Nell'area Criteri della pagina Modelli, fai clic su + Aggiungi accanto a Istantanea.
Fai clic su Impostazioni criteri avanzate.
Scorri fino a Nome script, quindi copia e incolla il seguente script:
L'output viene visualizzato per due diversi database. Uno è un job di backup dei log e l'altro è uno snapshot incrementale.
$ cat /tmp/backup_status.log
Wed Nov 22 06:11:49 UTC 2023 Job_0275501_ORCLCDB_ARCHIVELOG_BACKUP JobPhase:INIT
Wed Nov 22 06:13:52 UTC 2023 Job_0275501_ORCLCDB_ARCHIVELOG_BACKUP JobPhase:PRE
Wed Nov 22 06:15:01 UTC 2023 Job_0275501_ORCLCDB_ARCHIVELOG_BACKUP JobPhase:POST
Wed Nov 22 06:15:01 UTC 2023 Job_0275501_ORCLCDB_ARCHIVELOG_BACKUP JobPhase:FINAL
Wed Nov 22 06:18:00 UTC 2023 Job_0275637_SMALL_INCREMENTAL_BACKUP JobPhase:INIT
Wed Nov 22 06:20:15 UTC 2023 Job_0275637_SMALL_INCREMENTAL_BACKUP JobPhase:PRE
Wed Nov 22 06:22:06 UTC 2023 Job_0275637_SMALL_INCREMENTAL_BACKUP JobPhase:POST
Wed Nov 22 06:22:06 UTC 2023 Job_0275637_SMALL_INCREMENTAL_BACKUP JobPhase:FINAL
Passaggio delle variabili di ambiente a un file di log
Puoi esportare le informazioni sull'ambiente dal job allo script utilizzando
le variabili di ambiente nell'elenco seguente che hanno il prefisso ACT_.
Non tutte le variabili di ambiente sono applicabili a ogni tipo di job.
ACT_APPID: l'ID database dell'applicazione.
ACT_APPNAME: il nome dell'applicazione.
ACT_HOSTNAME: il nome dell'host che è il target di questo job.
ACT_JOBNAME: il nome del job.
ACT_JOBTYPE: una versione di testo della classe di lavoro.
ACT_LOGSMART_TYPE: l'unico valore valido è "db". Questo parametro deve essere presente per acquisire i log del database.
ACT_OPTIONS: le opzioni dei criteri che si applicano a questo job
ACT_PHASE: una stringa di testo che descrive la fase del job.
ACT_POLICY: il nome del criterio relativo a questo job.
ACT_POLICYOPT_logbackupretention: il numero di giorni di conservazione per i job di backup dei log. Viene visualizzato solo nei job di backup dei log del database.
ACT_PROFILE: il nome del profilo.
ACT_SCRIPT_TMOUT: il timeout della sovrascrittura. Se la risposta non viene ricevuta entro il valore del timeout (60 secondi per impostazione predefinita), lo script non andrà a buon fine.
ACT_SOURCEHOST: il nome dell'host che è stato l'origine di questa applicazione.
ACT_TEMPLATE: il nome del modello relativo al job.
ACT_TIMEOUT: la durata definita dello script, in secondi. Se lo script non viene completato entro il periodo di timeout, il job non va a buon fine.
ACT_VOLUMES: per le applicazioni generiche, l'elenco dei volumi configurati per il backup. Se hai bisogno di aiuto per conoscere le possibili variabili di ambiente che puoi utilizzare, aggiungi questa riga allo script.
[[["Facile da capire","easyToUnderstand","thumb-up"],["Il problema è stato risolto","solvedMyProblem","thumb-up"],["Altra","otherUp","thumb-up"]],[["Difficile da capire","hardToUnderstand","thumb-down"],["Informazioni o codice di esempio errati","incorrectInformationOrSampleCode","thumb-down"],["Mancano le informazioni o gli esempi di cui ho bisogno","missingTheInformationSamplesINeed","thumb-down"],["Problema di traduzione","translationIssue","thumb-down"],["Altra","otherDown","thumb-down"]],["Ultimo aggiornamento 2025-09-04 UTC."],[[["\u003cp\u003eThis guide details how to add and use scripts within a backup template to perform actions during different phases of a backup job, such as at the start, during, or after completion.\u003c/p\u003e\n"],["\u003cp\u003eScripts must be placed in specific folders depending on the host operating system: \u003ccode\u003e\\Program Files\\Google Cloud Backup and DR\\scripts\u003c/code\u003e for Windows, and \u003ccode\u003e/act/scripts\u003c/code\u003e for Linux, where the Linux scripts also need to be executable.\u003c/p\u003e\n"],["\u003cp\u003eScripts can execute in five different phases: INIT (job initialization), PRE (before the main job operation), POST (after the main job operation), FINAL (job completion), and ABORT (job failure), allowing for tailored actions at each stage.\u003c/p\u003e\n"],["\u003cp\u003eEnvironment variables prefixed with \u003ccode\u003eACT_\u003c/code\u003e can be used within the scripts to pass job-specific information like job name, job type, and application details into the script for conditional logic and logging purposes.\u003c/p\u003e\n"],["\u003cp\u003eScripts can be added to a backup template through the "Advanced Policy Settings" section, using a specific syntax to define the path and phase of each script, and a timeout can be defined for each script phase to prevent scripts from running indefinitely.\u003c/p\u003e\n"]]],[],null,["# Scripts to a backup template\n\nThis page explains how to add scripts to a backup template. It describes\nthe different phases that a script executes during a backup job.\n\nYou can write your scripts and run them to perform an action at the start of\na backup job, during it, or after it's completed. These are also called pre\nand post scripts.\n\nScripts location\n----------------\n\nA script folder is created automatically during agent installation where\nthe file system or database that needs protection is running. You need to place\nthe scripts in the following folders in order to execute them:\n\n- For Windows host: `\\Program Files\\Google Cloud Backup and DR\\scripts`\n- For Linux host: `/act/scripts` and set the script to executable (chmod 755 \\*.sh)\n\nScript phases\n-------------\n\nScripts execute in the following phases. If your script isn't executing,\ncheck if it is in the [scripts folder](#location).\n\n- **INIT**: This phase starts when the backup/recovery appliance connects to the agent, In this phase, the job is initialized and the credentials are verified.\n- **PRE**: This phase starts just before the major operation of the job. For snapshots, this phase starts before the application is frozen. For mount type jobs, this is after devices are mapped to the host but before agent based operations like rescan, import, and mounting of file systems is started.\n- **POST**: This phase starts immediately after the major operation of the job is completed. For backup type jobs, this is after the application is unfrozen. For mount type jobs this phase starts after all import, mount, or bring applications online operations are complete.\n- **FINAL**: This phase is the end of the job. Unless the script returns a non-zero code that causes the job to fail, the job is complete.\n- **ABORT**: This phase handles aborted jobs when they fail.\n\nExample: scripts\n----------------\n\nThe following example shows how to run a host side script at various phases\nof the backup job process. It has five scripts that output the date or time,\napp name (file system or database name), job type, job name, log retention value\nin days, and text to indicate the phase of the backup job that is processing. \n\n ```sh\n $ cat /act/scripts/init.sh\n #!/bin/sh\n if [ \"${ACT_JOBTYPE}\" = \"logbackup\" ]; then\n echo `date` \"${ACT_JOBNAME}_${ACT_APPNAME}_ARCHIVELOG_BACKUP JobPhase:INIT\" \u003e\u003e /tmp/backup_status.log\n else\n echo `date` \"${ACT_JOBNAME}_${ACT_APPNAME}_INCREMENTAL_BACKUP JobPhase:INIT\" \u003e\u003e /tmp/backup_status.log\n fi\n\n $ cat /act/scripts/pre.sh\n #!/bin/sh\n if [ \"${ACT_JOBTYPE}\" = \"logbackup\" ]; then\n echo `date` \"${ACT_JOBNAME}_${ACT_APPNAME}_ARCHIVELOG_BACKUP JobPhase:PRE\" \u003e\u003e /tmp/backup_status.log\n else\n echo `date` \"${ACT_JOBNAME}_${ACT_APPNAME}_INCREMENTAL_BACKUP JobPhase:PRE\" \u003e\u003e /tmp/backup_status.log\n fi\n\n $ cat /act/scripts/post.sh\n #!/bin/sh\n if [ \"${ACT_JOBTYPE}\" = \"logbackup\" ]; then\n echo `date` \"${ACT_JOBNAME}_${ACT_APPNAME}_ARCHIVELOG_BACKUP JobPhase:POST\" \u003e\u003e /tmp/backup_status.log\n else\n echo `date` \"${ACT_JOBNAME}_${ACT_APPNAME}_INCREMENTAL_BACKUP JobPhase:POST\" \u003e\u003e /tmp/backup_status.log\n fi\n\n $ cat /act/scripts/fini.sh\n #!/bin/sh\n if [ \"${ACT_JOBTYPE}\" = \"logbackup\" ]; then\n echo `date` \"${ACT_JOBNAME}_${ACT_APPNAME}_ARCHIVELOG_BACKUP JobPhase:FINAL\" \u003e\u003e /tmp/backup_status.log\n else\n echo `date` \"${ACT_JOBNAME}_${ACT_APPNAME}_INCREMENTAL_BACKUP JobPhase:FINAL\" \u003e\u003e /tmp/backup_status.log\n fi\n\n $ cat /act/scripts/abort.sh\n #!/bin/sh\n if [ \"${ACT_JOBTYPE}\" = \"logbackup\" ]; then\n echo `date` \"${ACT_JOBNAME}_${ACT_APPNAME}_ARCHIVELOG_BACKUP JobPhase:ABORT\" \u003e\u003e /tmp/backup_status.log\n else\n echo `date` \"${ACT_JOBNAME}_${ACT_APPNAME}_INCREMENTAL_BACKUP JobPhase:ABORT\" \u003e\u003e /tmp/backup_status.log\n fi\n ```\n\nIn the preceding example, `ACT_JOBTYPE = logbackup` indicates the job being run\nis a log backup task, rather than a full database backup task.\n\nYou might not need to run all five phases to achieve your chosen log output.\nYou can use only the init and final phases to indicate the start and end of\nthe backup process.\n\nYou can also customize the scripts to perform other tasks, such as stopping a\nservice or running other commands.\n\nAdd scripts to a backup template\n--------------------------------\n\nUse the following instructions to add the [scripts](#phases) to a backup\ntemplate.\n\n1. Click **Backup plans** and select **Templates** from the drop-down list.\n2. Select a template that includes an OnVault policy. The **Templates** page opens with the selected backup template.\n3. In the **Policies** area of the **Templates** page, click **+Add** next to **Snapshot**.\n4. Click **Advanced Policy Settings**.\n5. Scroll to **Script Name**, then copy and paste the following script:\n\n 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\n\n | **Note:** The use of timeout and arguments is not mandatory, but they can be used for each different phase where required. We added a timeout of 300 seconds to the final phase for this example, but you are able to add timeout values to any phase of the script. If the timeout is reached and the script is still running, the script will exit. The default timeouts for pre, post, and final scripts are 60 seconds, while init scripts have a default timeout of 120 seconds.\n6. Click **Save Changes**.\n\n7. [Run an on-demand job](/backup-disaster-recovery/docs/monitor-reports/monitor-jobs#run).\n\n The output is displayed for two different databases. One is a log backup job, and one is an incremental snapshot.\n\n $ cat /tmp/backup_status.log\n Wed Nov 22 06:11:49 UTC 2023 Job_0275501_ORCLCDB_ARCHIVELOG_BACKUP JobPhase:INIT\n Wed Nov 22 06:13:52 UTC 2023 Job_0275501_ORCLCDB_ARCHIVELOG_BACKUP JobPhase:PRE\n Wed Nov 22 06:15:01 UTC 2023 Job_0275501_ORCLCDB_ARCHIVELOG_BACKUP JobPhase:POST\n Wed Nov 22 06:15:01 UTC 2023 Job_0275501_ORCLCDB_ARCHIVELOG_BACKUP JobPhase:FINAL\n Wed Nov 22 06:18:00 UTC 2023 Job_0275637_SMALL_INCREMENTAL_BACKUP JobPhase:INIT\n Wed Nov 22 06:20:15 UTC 2023 Job_0275637_SMALL_INCREMENTAL_BACKUP JobPhase:PRE\n Wed Nov 22 06:22:06 UTC 2023 Job_0275637_SMALL_INCREMENTAL_BACKUP JobPhase:POST\n Wed Nov 22 06:22:06 UTC 2023 Job_0275637_SMALL_INCREMENTAL_BACKUP JobPhase:FINAL\n\nPassing environment variables into a log file\n---------------------------------------------\n\nYou can export the environment information from the job to the script using\nthe environment variables in the following list that are prefixed with `ACT_`.\nNot all of the environment variables will be applicable to every job type.\n\n- `ACT_APPID`: the database ID of the application.\n- `ACT_APPNAME`: the name of the application.\n- `ACT_HOSTNAME`: the name of the host which is the target of this job.\n- `ACT_JOBNAME`: the name of the job.\n- `ACT_JOBTYPE`: a text version of the job class.\n- `ACT_LOGSMART_TYPE`: the only valid value is \"db\". This must be present for database logs to be captured.\n- `ACT_OPTIONS`: the policy options that apply to this job\n- `ACT_PHASE`: a text string that describes the job phase.\n- `ACT_POLICY`: the name of the policy related to this job.\n- `ACT_POLICYOPT_logbackupretention`: the number of days of retention for log backup jobs. This only appears in database log backup jobs.\n- `ACT_PROFILE`: the name of the profile.\n- `ACT_SCRIPT_TMOUT`: the superscripting timeout. If the response is not received within the timeout value (default 60 seconds), then the script will fail.\n- `ACT_SOURCEHOST`: the name of the host that was the source for this application.\n- `ACT_TEMPLATE`: the name of the template related to the job.\n- `ACT_TIMEOUT`: the defined duration of the script, in seconds. If the script does not complete within the timeout period, the job will fail.\n- `ACT_VOLUMES`: for generic applications, the list of volumes that are configured for backup. If you need help learning the possible environment variables you can use, add this line to your script.\n\n echo printenv \u003e\u003e /tmp/backup_status.log"]]