Your Browser is not longer supported

Please use Google Chrome, Mozilla Firefox or Microsoft Edge to view the page correctly
Loading...

{{viewport.spaceProperty.prod}}

Prozedurgesteuerte Restaurierung

Aus den gesicherten Guardinformationen werden Prozedurkommandos abgeleitet und in eine vom Anwender festgelegte Prozedurdatei geschrieben. Diese Prozedurdatei hat das Dateiformat SAM und kann mit einem Texteditor, z.B. EDT, modifiziert werden.

Die Prozedur enthält in Form von Kommentarzeilen dieselben Informationen wie ein GUARDS-SAVE-Protokoll: die Kopf- und Fußzeilen, die Rahmenbedingungen und (am Prozedurende) eine zusammenfassende Liste mit den Namen aller durch die Prozedur restaurierten Guards.

Die Prozedur ist so strukturiert, dass die Guards in alphabetischer Reihenfolge restauriert werden. Vor den Kommandos zum Restaurieren eines Guards werden in Form von PProzedurkommentaren folgende Informationen eingetragen:

  • der Pfadname, wie er aus der Sicherungsdatei gelesen wurde

  • der Pfadname, wie er sich durch Umbenennungen neu zusammensetzt (falls vorhanden)

  • die in dem Guard auftretenden Referenzguards mit ihrem altem und ggf. neuen Pfadnamen

Zur Behandlung von Fehlersituationen werden Sprungmarken generiert, deren Name sich aus einem Buchstaben und einer siebenstelligen Nummer zusammensetzt. Die Nummer der Sprungmarke für das erste zu restaurierende Guard ist 0000001, und sie erhöht sich für jedes weitere um 1. Übersteigt die Anzahl der Sprungmarken die Zahl 9999999, wird ein Fehler gemeldet und der Prozedur-Generierungsprozess abgebrochen. In diesem Fall wird empfohlen, die Restaurierung in mehrere Läufe aufzuteilen, z.B. durch die Erzeugung von je einer eigenen Restaurierungsprozedur pro Guardtyp.

Abhängig vom Operanden REPLACE beim Restaurierungslauf werden bei der Prozedurerstellung folgende Aktionen durchgeführt:

  • REPLACE=*YES

    /DELETE-GUARD

    Mit dem Kommando wird ein gegebenenfalls existierendes Guard gelöscht.

    Durch entsprechende Sprungmarken wird die Situation abgefangen, dass das zu löschende Guard nicht vorhanden ist.

    /CREATE-GUARD

    Das Guard wird neu erzeugt und die Guardattribute restauriert.

    /ADD-... oder /MODIFY-...

    Der Guardinhalt wird restauriert.

  • REPLACE=*NO

    /CREATE-GUARD

    Es wird versucht, das Guard neu zu erzeugen und die Guardattribute zu restaurieren.

    Gibt es das Guard bereits, protokolliert die Prozedur eine entsprechende Textmeldung und fährt mit dem nächsten Guard fort. Gibt es das Guard nicht, wird mit seiner Restaurierung fortgefahren.

    /ADD-... oder /MODIFY-...

    Der Guardinhalt wird restauriert.

In den Guards des Typs DEFPATTR, in denen Schutzattribute für den Standardschutz definiert werden können, können auch Schreib-, Lese- und Ausführkennwörter festgelegt werden. Diese Kennwörter werden bei einer Restaurierung per Prozedur nicht restauriert. Stattdessen wird in der Prozeur eine entsprechender Hinweis eingetragen. Soll das Kennwort nicht manuell in die Prozedur eingetragen werden, sondern genauso restauriert werden, wie es gesichert wurde, müssen die Guards des Typs DEFPATTR programmgesteuert restauriert werden (siehe Abschnitt „Programmgesteuerte Restaurierung").

Beispiel

Im folgenden Beispiel wird eine von GUARDS-SAVE generierte Prozedur dargestellt, mit der die beiden Guards $TSOS.SYS.DEFPATTR und $TSOS.SYS.PDF unter gleichzeitigem Austausch von Katalog- und Benutzerkennung restauriert werden können.

Das referenzierte Benutzerkennungsguard $LUZIFER.DEFPUID wurde zuvor nicht gesichert und wird darum bei der Prozedurgenerierung in der Sicherungsdatei nicht gefunden.

Die Schreibkennwörter werden nicht restauriert, stattdessen wird ein entsprechender Hinweis in die Prozeur eingetragen.

/ BEGIN-PROCEDURE LOGGING=*NO 
/ 
/ REMARK MOD-JOB-OPT LOGGING=(LISTING=*YES) 
/ STEP 
/ ASSIGN-SYSLST TO=#RESTORE.LST.2017-12-15.170512 
/ STEP 
/ 
/ WRI-TEXT '*********************************************************' 
/ WRI-TEXT 'GUARDS-SAVE                                RESTORE-GUARDS' 
/ WRI-TEXT 'Proc Generated by User  TSOS      at  2017-12-15/17:05:12' 
/ WRI-TEXT '*********************************************************' 
/ WRI-TEXT '                  ***  Begin  ***                        ' 
/          "*********************************************************" 
/          "Backup File     : :XXXX:$TSOS.BACKUP-GUARD               " 
/          "Backup Date     : 2017-12-07/14:11:58                    " 
/          "Backup Pubset   : XXXX                                   " 
/          "                                                         " 
/          "Restore Guard   : :XXXX:$TSOS.*                          " 
/          "Restore Type    : COOWNERP, DEFAULTP, DEFPATTR,          " 
/          "                  DEFPUID , STDAC   , UNDEF              " 
/          "Restore Resolve : *YES                                   " 
/          "Restore Replace : *YES                                   " 
/          "                                                         " 
/          "New Pubset-Id   : 2OSC                                   " 
/          "New User-Id     : MARY                                   " 
/          "New Name        : *SAME                                  " 
/          "New Prog Pvs-Id : *SAME                                  " 
/          "*********************************************************" 
/ 
/          "** =================================================== **" 
/          "**                                                     **" 
/          "** Guard    :XXXX:$TSOS.DEFPATTR      DEFPATTR 0000001 **"    -- alter Pfad
/          "** -->      :2OSC:$MARY.DEFPATTR                       **"    -- neuer Pfad
/          "**                                                     **" 
/          "** =================================================== **" 
/           DEL-GUARD :2OSC:$MARY.DEFPATTR                             -
/              ,DIALOG-CONTROL=*NO 
/ WRI-TEXT '** :2OSC:$MARY.DEFPATTR      DEFPATTR  deleted         **' 
/           SKIP .C0000001 
/           STEP 
/ WRI-TEXT '** :2OSC:$MARY.DEFPATTR      DEFPATTR  delete  *error* **' 
/           SKIP .C0000001 
/ 
/           .C0000001 
/           CRE-GUARD :2OSC:$MARY.DEFPATTR                             -
/              ,SCOPE=*USER-ID                                         -
/              ,USER-INFO='                                           ' 
/ WRI-TEXT '** :2OSC:$MARY.DEFPATTR      DEFPATTR  created         **' 
/           SKIP .R0000001 
/           STEP 
/ WRI-TEXT '** :2OSC:$MARY.DEFPATTR      DEFPATTR  create  *error* **' 
/           SKIP .E0000001 
/ 

/           .R0000001 
/           ADD-DEFAULT-PROTECTION-ATTR :2OSC:$MARY.DEFPATTR 
/           MOD-DEFAULT-PROTECTION-ATTR :2OSC:$MARY.DEFPATTR           
/              ,ATTR-SCOPE=*CREATE-OBJECT                              
/              ,ACCESS=*SYSTEM-STD                                     
/              ,USER-ACCESS=*SYSTEM-STD                                
/              ,BASIC-ACL=*SYSTEM-STD                                  
/              ,GUARDS=*SYSTEM-STD                                     
/              ,READ-PASSWORD=*SYSTEM-STD                              
/              ,WRITE-PASSWORD=*NONE                                   (kein Passwd)
/              ,EXEC-PASSWORD=*SYSTEM-STD                              
/              ,DESTROY-BY-DELETE=*SYSTEM-STD                          
/              ,SPACE-RELEASE-LOCK=*SYSTEM-STD                         
/              ,EXPIRATION-DATE=*SYSTEM-STD                            
/              ,FREE-FOR-DELETION=*SYSTEM-STD                          
/              ,DIALOG-CONTROL=*NO 
/           MOD-DEFAULT-PROTECTION-ATTR :2OSC:$MARY.DEFPATTR           
/              ,ATTR-SCOPE=*MODIFY-OBJECT-ATTR                         
/              ,ACCESS=*SYSTEM-STD                                     
/              ,USER-ACCESS=*SYSTEM-STD                                
/              ,BASIC-ACL=*SYSTEM-STD                                  
/              ,GUARDS=*SYSTEM-STD                                     
/              ,READ-PASSWORD=*SYSTEM-STD                              
/              ,WRITE-PASSWORD=*NONE                                    (kein Passwd
/              ,EXEC-PASSWORD=*SYSTEM-STD                              
/              ,DESTROY-BY-DELETE=*SYSTEM-STD                          
/              ,SPACE-RELEASE-LOCK=*SYSTEM-STD                         
/              ,EXPIRATION-DATE=*SYSTEM-STD                            
/              ,DIALOG-CONTROL=*NO 
/ WRI-TEXT '**                                                     **' 
/ WRI-TEXT '** Warning:                                            **' 
/ WRI-TEXT '** -------                                             **' 
/ WRI-TEXT '** WRITE-PASSWORD=*NONE restored for ATTR-SCOPE=*CRE   **'    (Warnung)
/ WRI-TEXT '** WRITE-PASSWORD=*NONE restored for ATTR-SCOPE=*MOD   **'    (Warnung)
/ WRI-TEXT '**                                                     **' 
/ WRI-TEXT '** :2OSC:$MARY.DEFPATTR      DEFPATTR  restored        **' 
/           SKIP .E0000001 
/           STEP 
/ WRI-TEXT '** :2OSC:$MARY.DEFPATTR      DEFPATTR  restore *error* **' 
/           SKIP .E0000001 
/           .E0000001 
/ 
/          "** =================================================== **" 
/          "**                                                     **" 
/          "** Guard    :XXXX:$TSOS.SYS.PDF       DEFAULTP 0000002 **"    (alter Pfad)
/          "** -->      :2OSC:$MARY.SYS.PDF                        **"    (neuer Pfad)
/          "**      Ref       $LUZIFER.DEFPUID                     **" 
/          "**      Ref       $TSOS.DEFPATTR                       **"    (alter Pfad)
/          "**      -->       $MARY.DEFPATTR                       **"    (neuer Pfad)
/          "**                                                     **" 
/          "** =================================================== **" 
/ WRI-TEXT '** --------------------------------------------------- **' 
/           DEL-GUARD :2OSC:$MARY.SYS.PDF                              
/              ,DIALOG-CONTROL=*NO 
/ WRI-TEXT '** :2OSC:$MARY.SYS.PDF       DEFAULTP  deleted         **' 
/           SKIP .C0000002 
/           STEP 
/ WRI-TEXT '** :2OSC:$MARY.SYS.PDF       DEFAULTP  delete  *error* **' 
/           .C0000002 
/           CRE-GUARD :2OSC:$MARY.SYS.PDF                              -
/              ,SCOPE=*USER-ID                                         -
/              ,USER-INFO='                                           ' 
/ WRI-TEXT '** :2OSC:$MARY.SYS.PDF       DEFAULTP  created         **' 
/           SKIP .R0000002 
/           STEP 
/ WRI-TEXT '** :2OSC:$MARY.SYS.PDF       DEFAULTP  create  *error* **' 
/           SKIP .E0000002 
/           .R0000002 
/           ADD-DEFAULT-PROTECTION-RULE :2OSC:$MARY.SYS.PDF            -
/              ,PROTECTION-RULE=RULE1                                  -
/              ,RULE-POSITION=*LAST                                    -
/              ,PROTECT-OBJECT=*PARAMETERS                             -
/                (NAME=A                                               -
/                ,ATTRIBUTE-GUARD=$MARY.DEFPATTR                       -
/                ,USER-ID-GUARD=$LUZIFER.DEFPUID  )                    -   (fehlt)
/              ,GUARD-CHECK=*NO                                        -
/              ,DIALOG-CONTROL=*NO 
/ WRI-TEXT '** :2OSC:$MARY.SYS.PDF       DEFAULTP  restored        **' 
/           SKIP .E0000002 
/           STEP 
/ WRI-TEXT '** :2OSC:$MARY.SYS.PDF       DEFAULTP  restore *error* **' 
/           SKIP .E0000002 
/           .E0000002 
/ 
/          "*********************************************************" 
/          "Guard Name                Guard Type Error   Status      " 
/          "----------                ---------- -----   ------      " 
/          ":XXXX:$TSOS.DEFPATTR      DEFPATTR           generated   "    (alter Pfad)
/          ":XXXX:$TSOS.SYS.PDF       DEFAULTP           generated   "    (alter Pfad)
/          "........................................................." 
/          ":XXXX:$LUZIFER.DEFPUID   -undefined- DMS0AA8 referenced  "    (fehlt)
/          "---------------------------------------------------------" 
/          "Generated Guards: 2                                      " 
/          "Faulty Guards   : 1                                      " 
/          "*********************************************************" 
/ 
/ WRI-TEXT '*********************************************************' 
/ WRI-TEXT '                  ***   End   ***                        ' 
/          "*********************************************************" 
/ WRI-TEXT 'GUARDS-SAVE                                RESTORE-GUARDS' 
/ WRI-TEXT 'Proc Generated by User  TSOS      at  2017-12-15/17:05:12' 
/ WRI-TEXT '*********************************************************' 
/ 
/ STEP 
/ ASSIGN-SYSLST TO=*PRIMARY 
/ STEP 
/ 
/ END-PROCEDURE