Skripts einer Sicherungsvorlage in der Appliance-Verwaltungskonsole hinzufügen

Auf dieser Seite wird beschrieben, wie Sie einer Sicherungsvorlage Skripts hinzufügen. Es werden die verschiedenen Phasen beschrieben, die ein Skript während eines Sicherungsjobs durchläuft.

Sie können Ihre Skripts schreiben und ausführen, um eine Aktion zu Beginn eines Sicherungsjobs, während des Jobs oder nach Abschluss des Jobs auszuführen. Diese werden auch als Pre- und Post-Scripts bezeichnet.

Speicherort für Skripts

Während der Agent-Installation wird automatisch ein Skriptordner erstellt, in dem das zu schützende Dateisystem oder die zu schützende Datenbank ausgeführt wird. Sie müssen die Skripts in den folgenden Ordnern ablegen, um sie auszuführen:

  • Für Windows-Host: \Program Files\Google Cloud Backup and DR\scripts
  • Für Linux-Host: /act/scripts und legen Sie das Skript als ausführbar fest (chmod 755 *.sh)

Skriptphasen

Skripts werden in den folgenden Phasen ausgeführt. Wenn Ihr Script nicht ausgeführt wird, prüfen Sie, ob es sich im Ordner „scripts“ befindet.

  • INIT: Diese Phase beginnt, wenn die Sicherungs-/Wiederherstellungs-Appliance eine Verbindung zum Agent herstellt. In dieser Phase wird der Job initialisiert und die Anmeldedaten werden überprüft.
  • PRE: Diese Phase beginnt kurz vor dem Hauptvorgang des Jobs. Bei Snapshots beginnt diese Phase, bevor die Anwendung eingefroren wird. Bei Jobs vom Typ „Bereitstellen“ ist dies der Fall, nachdem Geräte dem Host zugeordnet wurden, aber bevor agentbasierte Vorgänge wie erneutes Scannen, Importieren und Bereitstellen von Dateisystemen gestartet werden.
  • POST: Diese Phase beginnt unmittelbar nach Abschluss des Hauptvorgangs des Jobs. Bei Sicherungsjobs ist dies der Fall, nachdem die Anwendung wieder freigegeben wurde. Bei Jobs vom Typ „Bereitstellen“ beginnt diese Phase, nachdem alle Import-, Bereitstellungs- oder Online-Vorgänge für Anwendungen abgeschlossen sind.
  • FINAL: Diese Phase ist das Ende des Jobs. Der Job ist abgeschlossen, es sei denn, das Script gibt einen Code ungleich null zurück, der dazu führt, dass der Job fehlschlägt.
  • ABORT: In dieser Phase werden abgebrochene Jobs verarbeitet, wenn sie fehlschlagen.

Beispiel: scripts

Im folgenden Beispiel wird gezeigt, wie Sie ein hostseitiges Skript in verschiedenen Phasen des Sicherungsjobprozesses ausführen. Sie enthält fünf Skripts, die das Datum oder die Uhrzeit, den Anwendungsnamen (Dateisystem- oder Datenbankname), den Jobtyp, den Jobnamen, den Wert für die Aufbewahrung von Logs in Tagen und Text zur Angabe der Phase des verarbeiteten Sicherungsjobs ausgeben.

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

Im vorherigen Beispiel gibt ACT_JOBTYPE = logbackup an, dass der ausgeführte Job eine Log-Sicherungsaufgabe und keine vollständige Datenbanksicherungsaufgabe ist.

Möglicherweise müssen Sie nicht alle fünf Phasen ausführen, um die gewünschte Logausgabe zu erhalten. Sie können nur die Phasen „init“ und „final“ verwenden, um den Beginn und das Ende des Sicherungsvorgangs anzugeben.

Sie können die Skripts auch anpassen, um andere Aufgaben auszuführen, z. B. einen Dienst zu beenden oder andere Befehle auszuführen.

Skripts zu einer Sicherungsvorlage hinzufügen

Folgen Sie dieser Anleitung, um die Skripts einer Sicherungsvorlage hinzuzufügen.

  1. Klicken Sie auf Sicherungspläne und wählen Sie Vorlagen aus der Drop-down-Liste aus.
  2. Wählen Sie eine Vorlage aus, die eine OnVault-Richtlinie enthält. Die Seite Vorlagen wird mit der ausgewählten Sicherungsvorlage geöffnet.
  3. Klicken Sie auf der Seite Vorlagen im Bereich Richtlinien neben Snapshot auf + Hinzufügen.
  4. Klicken Sie auf Erweiterte Richtlinieneinstellungen.
  5. Scrollen Sie zu Scriptname, kopieren Sie das folgende Script und fügen Sie es ein:

    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. Klicken Sie auf Änderungen speichern.

  7. On-Demand-Job ausführen

    Die Ausgabe wird für zwei verschiedene Datenbanken angezeigt. Einer ist ein Log-Sicherungsjob und der andere ein inkrementeller Snapshot.

    $ 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

Umgebungsvariablen an eine Logdatei übergeben

Sie können die Umgebungsinformationen aus dem Job in das Script exportieren. Verwenden Sie dazu die Umgebungsvariablen in der folgenden Liste, die das Präfix ACT_ haben. Nicht alle Umgebungsvariablen sind für jeden Jobtyp anwendbar.

  • ACT_APPID: die Datenbank-ID der Anwendung.
  • ACT_APPNAME: der Name der Anwendung.
  • ACT_HOSTNAME: der Name des Hosts, der das Ziel dieses Jobs ist.
  • ACT_JOBNAME: Der Name des Jobs.
  • ACT_JOBTYPE: eine Textversion der Jobklasse.
  • ACT_LOGSMART_TYPE: Der einzige gültige Wert ist „db“. Diese muss vorhanden sein, damit Datenbanklogs erfasst werden können.
  • ACT_OPTIONS: die Richtlinienoptionen, die für diesen Job gelten
  • ACT_PHASE: ein Textstring, der die Jobphase beschreibt.
  • ACT_POLICY: der Name der Richtlinie, die sich auf diesen Job bezieht.
  • ACT_POLICYOPT_logbackupretention: die Anzahl der Tage, für die Log-Sicherungsjobs aufbewahrt werden sollen. Dies wird nur in Jobs zur Sicherung von Datenbanklogs angezeigt.
  • ACT_PROFILE: der Name des Profils.
  • ACT_SCRIPT_TMOUT: das Zeitlimit für die Hochstellung. Wenn die Antwort nicht innerhalb des Zeitlimits (standardmäßig 60 Sekunden) eingeht, schlägt das Skript fehl.
  • ACT_SOURCEHOST: der Name des Hosts, der die Quelle für diese Anwendung war.
  • ACT_TEMPLATE: der Name der Vorlage, die sich auf den Job bezieht.
  • ACT_TIMEOUT: die definierte Dauer des Scripts in Sekunden. Wenn das Skript nicht innerhalb des Zeitlimits abgeschlossen wird, schlägt der Job fehl.
  • ACT_VOLUMES: Für generische Anwendungen die Liste der Volumes, die für die Sicherung konfiguriert sind. Wenn Sie Hilfe beim Ermitteln der möglichen Umgebungsvariablen benötigen, die Sie verwenden können, fügen Sie diese Zeile Ihrem Skript hinzu.

    echo printenv >> /tmp/backup_status.log