Mantenha tudo organizado com as coleções
Salve e categorize o conteúdo com base nas suas preferências.
Esta página explica como adicionar scripts a um modelo de backup. Ele descreve
as diferentes fases que um script executa durante um job de backup.
Você pode escrever e executar scripts para realizar uma ação no início, durante ou após a conclusão de um job de backup. Eles também são chamados de scripts
pré e pós.
Local dos scripts
Uma pasta de script é criada automaticamente durante a instalação do agente, em que
o sistema de arquivos ou o banco de dados que precisa de proteção está em execução. Você precisa colocar
os scripts nas seguintes pastas para executá-los:
Para o host do Windows: \Program Files\Google Cloud Backup and DR\scripts
Para host Linux: /act/scripts e definir o script como executável (chmod 755 *.sh)
Fases do script
Os scripts são executados nas seguintes fases. Se o script não estiver sendo executado,
verifique se ele está na pasta de scripts.
INIT: essa fase começa quando o dispositivo de backup/recuperação se conecta
ao agente. Nessa fase, o job é inicializado e as credenciais são
verificadas.
PRE: essa fase começa pouco antes da operação principal do job.
Para snapshots, essa fase começa antes que o aplicativo seja congelado. Para jobs do tipo
mount, isso ocorre depois que os dispositivos são mapeados para o host, mas antes que as operações
baseadas em agentes, como reescanear, importar e montar sistemas de arquivos, sejam iniciadas.
POST: essa fase começa imediatamente após a operação principal do
job ser concluída. Para jobs do tipo backup, isso ocorre depois que o aplicativo
é descongelado. Para jobs do tipo "mount", essa fase começa depois que todas as operações de importação, montagem ou ativação de aplicativos são concluídas.
FINAL: esta fase é o fim do job. A menos que o script retorne
um código diferente de zero que cause a falha do job, ele será concluído.
ABORT: essa fase processa jobs abortados quando eles falham.
Exemplo: scripts
O exemplo a seguir mostra como executar um script do lado do host em várias fases
do processo de job de backup. Ele tem cinco scripts que geram a data ou hora,
o nome do app (nome do sistema de arquivos ou do banco de dados), o tipo de job, o nome do job, o valor de retenção de registro
em dias e o texto para indicar a fase do job de backup que está sendo processado.
```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```
No exemplo anterior, ACT_JOBTYPE = logbackup indica que o job em execução
é uma tarefa de backup de registro, e não uma tarefa de backup completo do banco de dados.
Talvez não seja necessário executar as cinco fases para conseguir a saída de registro escolhida.
Você só pode usar as fases de inicialização e finalização para indicar o início e o fim do
processo de backup.
Também é possível personalizar os scripts para realizar outras tarefas, como interromper um
serviço ou executar outros comandos.
Adicionar scripts a um modelo de backup
Siga as instruções abaixo para adicionar os scripts a um modelo de
backup.
Clique em Planos de backup e selecione Modelos na lista suspensa.
Selecione um modelo que inclua uma política do OnVault.
A página Modelos é aberta com o modelo de backup selecionado.
Na área Políticas da página Modelos, clique em +Adicionar ao lado de Snapshot.
Clique em Configurações avançadas da política.
Role até Nome do script e copie e cole o seguinte script:
A saída é mostrada para dois bancos de dados diferentes. Um é um job de backup de registro e o outro é um snapshot incremental.
$ 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
Como transmitir variáveis de ambiente para um arquivo de registro
É possível exportar as informações do ambiente do job para o script usando
as variáveis de ambiente na lista a seguir que têm o prefixo ACT_.
Nem todas as variáveis de ambiente são aplicáveis a todos os tipos de job.
ACT_APPID: o ID do banco de dados do aplicativo.
ACT_APPNAME: o nome do aplicativo.
ACT_HOSTNAME: o nome do host de destino desse job.
ACT_JOBNAME: o nome do job.
ACT_JOBTYPE: uma versão de texto da classe de trabalho.
ACT_LOGSMART_TYPE: o único valor válido é "db". Ela precisa estar presente para que os registros do banco de dados sejam capturados.
ACT_OPTIONS: as opções de política aplicáveis a esse job
ACT_PHASE: uma string de texto que descreve a fase do job.
ACT_POLICY: o nome da política relacionada a esse job.
ACT_POLICYOPT_logbackupretention: o número de dias de retenção para jobs de backup de registro. Isso aparece apenas em jobs de backup de registro de banco de dados.
ACT_PROFILE: o nome do perfil.
ACT_SCRIPT_TMOUT: o tempo limite da superscrita. Se a resposta não for recebida dentro do valor do tempo limite (padrão de 60 segundos), o script vai falhar.
ACT_SOURCEHOST: o nome do host que foi a origem do aplicativo.
ACT_TEMPLATE: o nome do modelo relacionado ao job.
ACT_TIMEOUT: a duração definida do script, em segundos. Se o script não for concluído dentro do período de tempo limite, o job vai falhar.
ACT_VOLUMES: para aplicativos genéricos, a lista de volumes configurados para backup. Se você precisar de ajuda para saber quais variáveis de ambiente pode usar, adicione esta linha ao script.
[[["Fácil de entender","easyToUnderstand","thumb-up"],["Meu problema foi resolvido","solvedMyProblem","thumb-up"],["Outro","otherUp","thumb-up"]],[["Difícil de entender","hardToUnderstand","thumb-down"],["Informações incorretas ou exemplo de código","incorrectInformationOrSampleCode","thumb-down"],["Não contém as informações/amostras de que eu preciso","missingTheInformationSamplesINeed","thumb-down"],["Problema na tradução","translationIssue","thumb-down"],["Outro","otherDown","thumb-down"]],["Última atualização 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"]]