Secuencias de comandos en una plantilla de copia de seguridad

En esta página se explica cómo añadir secuencias de comandos a una plantilla de copia de seguridad. Describe las diferentes fases por las que pasa una secuencia de comandos durante una tarea de copia de seguridad.

Puedes escribir tus secuencias de comandos y ejecutarlas para realizar una acción al inicio de un trabajo de copia de seguridad, durante el proceso o después de que se haya completado. También se denominan pre-scripts y post-scripts.

Ubicación de las secuencias de comandos

Una carpeta de secuencias de comandos se crea automáticamente durante la instalación del agente, donde se ejecuta el sistema de archivos o la base de datos que necesita protección. Para ejecutar las secuencias de comandos, debes colocarlas en las siguientes carpetas:

  • En el caso de los anfitriones de Windows: \Program Files\Google Cloud Backup and DR\scripts
  • En el host Linux: /act/scripts y configura la secuencia de comandos como ejecutable (chmod 755 *.sh).

Fases de la secuencia de comandos

Las secuencias de comandos se ejecutan en las siguientes fases. Si tu secuencia de comandos no se ejecuta, comprueba si está en la carpeta de secuencias de comandos.

  • INIT esta fase se inicia cuando el dispositivo de copia de seguridad o recuperación se conecta al agente. En esta fase, se inicializa el trabajo y se verifican las credenciales.
  • PRE: esta fase empieza justo antes de la operación principal del trabajo. En el caso de las copias de seguridad, esta fase comienza antes de que se congele la aplicación. En el caso de las tareas de tipo de montaje, esto ocurre después de que los dispositivos se hayan asignado al host, pero antes de que se inicien las operaciones basadas en agentes, como el nuevo análisis, la importación y el montaje de sistemas de archivos.
  • POST: esta fase empieza inmediatamente después de que se complete la operación principal del trabajo. En el caso de los trabajos de tipo copia de seguridad, esto ocurre después de que se descongele la aplicación. En las tareas de tipo montaje, esta fase comienza una vez que se han completado todas las operaciones de importación, montaje o puesta en línea de aplicaciones.
  • FINAL: esta fase es el final del trabajo. A menos que la secuencia de comandos devuelva un código distinto de cero que provoque un error en el trabajo, este se completará.
  • ABORT: esta fase gestiona las tareas anuladas cuando fallan.

Ejemplo: secuencias de comandos

En el siguiente ejemplo se muestra cómo ejecutar una secuencia de comandos del host en varias fases del proceso de trabajo de copia de seguridad. Tiene cinco secuencias de comandos que muestran la fecha o la hora, el nombre de la aplicación (nombre del sistema de archivos o de la base de datos), el tipo de tarea, el nombre de la tarea, el valor de conservación de registros en días y el texto que indica la fase de la tarea de copia de seguridad que se está procesando.

    ```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
        ```

En el ejemplo anterior, ACT_JOBTYPE = logbackup indica que el trabajo que se está ejecutando es una tarea de copia de seguridad de registros, no una tarea de copia de seguridad completa de la base de datos.

Puede que no tengas que ejecutar las cinco fases para conseguir el resultado de registro que quieras. Solo puedes usar las fases init y final para indicar el inicio y el final del proceso de copia de seguridad.

También puedes personalizar las secuencias de comandos para que realicen otras tareas, como detener un servicio o ejecutar otros comandos.

Añadir secuencias de comandos a una plantilla de copia de seguridad

Sigue estas instrucciones para añadir las secuencias de comandos a una plantilla de copia de seguridad.

  1. Haz clic en Planes de copia de seguridad y selecciona Plantillas en la lista desplegable.
  2. Selecciona una plantilla que incluya una política OnVault. Se abrirá la página Plantillas con la plantilla de copia de seguridad seleccionada.
  3. En el área Políticas de la página Plantillas, haga clic en +Añadir junto a Snapshot.
  4. Haz clic en Configuración avanzada de la política.
  5. Desplázate hasta Nombre de la secuencia de comandos y, a continuación, copia y pega la siguiente secuencia de comandos:

    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
    
  6. Haz clic en Guardar cambios.

  7. Ejecuta un trabajo bajo demanda.

    El resultado se muestra para dos bases de datos diferentes. Una es una tarea de copia de seguridad de registros y la otra es una instantánea 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

Transferir variables de entorno a un archivo de registro

Puedes exportar la información del entorno del trabajo a la secuencia de comandos mediante las variables de entorno de la siguiente lista que tengan el prefijo ACT_. No todas las variables de entorno se aplicarán a todos los tipos de trabajo.

  • ACT_APPID: el ID de la base de datos de la aplicación.
  • ACT_APPNAME: el nombre de la aplicación.
  • ACT_HOSTNAME: el nombre del host de destino de este trabajo.
  • ACT_JOBNAME: el nombre del puesto.
  • ACT_JOBTYPE: una versión de texto de la clase de trabajo.
  • ACT_LOGSMART_TYPE: el único valor válido es "db". Debe estar presente para que se capturen los registros de la base de datos.
  • ACT_OPTIONS: las opciones de política que se aplican a este trabajo
  • ACT_PHASE: cadena de texto que describe la fase del trabajo.
  • ACT_POLICY: el nombre de la política relacionada con este trabajo.
  • ACT_POLICYOPT_logbackupretention: el número de días de conservación de los trabajos de copia de seguridad de registros. Esto solo aparece en los trabajos de copia de seguridad de registros de bases de datos.
  • ACT_PROFILE: el nombre del perfil.
  • ACT_SCRIPT_TMOUT: tiempo de espera de la superíndice. Si no se recibe la respuesta en el plazo del tiempo de espera (60 segundos de forma predeterminada), el script fallará.
  • ACT_SOURCEHOST: el nombre del host que fue la fuente de esta aplicación.
  • ACT_TEMPLATE: el nombre de la plantilla relacionada con el trabajo.
  • ACT_TIMEOUT: duración definida de la secuencia de comandos, en segundos. Si la secuencia de comandos no se completa en el periodo de tiempo de espera, el trabajo fallará.
  • ACT_VOLUMES: en el caso de las aplicaciones genéricas, la lista de volúmenes configurados para la copia de seguridad. Si necesitas ayuda para conocer las variables de entorno que puedes usar, añade esta línea a tu secuencia de comandos.

    echo printenv >> /tmp/backup_status.log