Dump/Restore
Beschreibung
- tar und cpio enthalten wenige Eigenschaften, die man sich von einem guten Backup-Werkzeug wünscht.
- Zwar sind beide effektiv zum Erzeugen voller Backups geeignet, jedoch besitzen sie von Haus aus keinerlei Unterstützung inkrementeller Datensicherungsstrategien.
- Allerdings passen sie mit ihrer Philosophie ideal in das Kommandokonzept von Unix, wo jedes Standardkommando einen »sinnvollen« Funktionsumfang mit sich bringen sollte und alle komplexeren Aufgaben durch Kombination der Grundbausteine realisiert werden. * Ein Backup wird auch heute häufig auf Basis von Shellskripten und unter Verwendung der bereits vorgestellten Kommandos implementiert.
- dump hingegen verdient die Bezeichnung eines Backup-Werkzeuges.
- Es vermag sowohl mit vollen als auch mit inkrementellen Backups umzugehen, wobei letztere in bis zu 9 Abstufungen vorgenommen werden können.
Multilevel-Backups
- Ein Multilevel-Backup bezeichnet eine Strategie, wobei ein volles Backup mit inkrementellen Backups kombiniert wird.
- Im einfachsten Fall wird einmal in einem Monat ein volles Backup des Datenbestandes vorgenommen und anschließend werden täglich nur die modifizierten Dateien gesichert.
- Dem vollen Backup wird hierbei das Level 0 zugeordnet und die weiteren Sicherungen erhalten das Level 1.
- Nach Ablauf des Monats wiederholt sich der Vorgang.
- Eine Verallgemeinerung führt nun beliebig viele Level ein, wobei bei einem Backup des Levels x alle geänderten Daten im Zeitraum seit der letzten Sicherung desselben Levels berücksichtigt werden.
- Der Sinn solcher Level ist die Einsparung von Speichermedien bei gleichzeitiger Verlängerung der Backup-Historie.
- Möchten Sie bspw. die Daten über den Zeitraum dreier Monate aufbewahren, so benötigen Sie bei Realisierung mittels zweier Level ca. 92 Bänder (1 Band für das volle Backup und für jeden Tag ein weiteres).
- Ein anderes Vorgehen wäre ein anfängliches volles Backup (Level 0, 1 Band), jeden Monat ein Backup Level 1 (2 Bänder, der 3. Monat wird vom kommenden vollen Backup erfasst), jede Woche ein Backup Level 2 (4 Bänder) und schließlich ein viertes Level zur Speicherung der täglichen Daten (6 Bänder).
- Mit 13 Bänder können Sie also jederzeit den Datenbestand auf den Stand des letzten Tages bringen.
Die Verwendung von dump
dump [ OPTIONEN ] [ DATEISYSTEM ]
- dump vermag derzeit nur mit dem Datensystem ext2 zusammen zu arbeiten.
- Ein zu sicherndes Dateisystem kann in der Datei [../../../../index.php/Linuxfibel_-_System-Administration_-_Dateisysteme#Die_Datei_.2Fetc.2Ffstab /etc/fstab ]markiert werden, so dass bei einem Aufruf von dump über den gesamten Verzeichnisbaum nur diese Dateisysteme berücksichtigt werden.
- dump versucht in der Voreinstellung das Gerät »/dev/st0« zu öffnen.
- Existiert das Device nicht, fordert das Kommando zur Eingabe eines anderen Ausgabegerätes auf.
- Mit der Option -f Datei kann die Sicherung in eine beliebige Datei umgelenkt werden.
Dem Kommando ist natürlich mitzuteilen, was zu sichern ist.
- Hier kann entweder ein Verzeichnis oder das Device angegeben werden.
- Des Weiteren muss das Backup-Level (0-9) benannt werden. dump selbst ist in der Lage, die Zeiten der letzten Sicherung eines Levels zu notieren und anhand derer zu entscheiden, ob ein erneutes Backup dieses Levels überhaupt notwendig ist.
- Hierzu schreibt das Kommando, wird es mit der Option -u aufgerufen, die Zeiten in die Datei /etc/dumpdates.
- Existiert keine Datei, sollte zuvor eine leere von Hand erzeugt werden.
Volles Backup
Um nun ein volles Backup des Verzeichnisses »/etc/rc.d« auf Diskette zu sichern, ist Folgendes einzugeben:
# dump -0 -u -f /dev/fd0 /etc/rc.d/ DUMP: Date of this level 0 dump: Tue Aug 15 09:38:13 2000 DUMP: Date of last level 0 dump: the epoch DUMP: Dumping /dev/hda5 (/) to /dev/fd0 DUMP: Label: none DUMP: mapping (Pass I) [regular files] DUMP: mapping (Pass II) [directories] DUMP: estimated 652 tape blocks on 0.02 tape(s). DUMP: Volume 1 started at: Tue Aug 15 09:38:13 2000 DUMP: dumping (Pass III) [directories] DUMP: dumping (Pass IV) [regular files] DUMP: DUMP: 725 tape blocks on 1 volumes(s) DUMP: finished in less than a second DUMP: Volume 1 completed at: Tue Aug 15 09:38:13 2000 DUMP: level 0 dump on Tue Aug 15 09:38:13 2000 DUMP: DUMP: Date of this level 0 dump: Tue Aug 15 09:38:13 2000 DUMP: DUMP: Date this dump completed: Tue Aug 15 09:38:13 2000 DUMP: DUMP: Average transfer rate: 0 KB/s DUMP: Closing /dev/fd0 DUMP: DUMP IS DONE
dump fordert selbständig zum Mediumwechsel auf, wenn dessen Speicherkapazität nicht mehr genügt.
dump hat in obigen Beispiel die letzte Sicherung des zugrunde liegenden Dateisystems in der Datei »/etc/dumpdates« vermerkt.
- Die Informationen sind dort im Klartext enthalten und können somit editiert werden, um zum Beispiel temporär eine andere Backupstrategie zu wählen.
Mit der Option -W zeigt dump die gesicherten Dateisysteme mit Datum und letztem Backuplevel an und gibt zusätzlich noch Empfehlungen, welches Dateisystem eine erneute Sicherung vertragen könnte:
# dump -W Last dump(s) done (Dump '>' file systems): /dev/hda5 ( /) Last dump: Level 1, Date Tue Aug 15 13:38
Inkrementelles Backup
Um nun eine Level-2-Archivierung desselben Dateisystems vorzunehmen, gibt der Administrator folgende Zeile ein:
# dump -2 -u -f /dev/fd0 /etc/rc.d/
Die eigentliche Aufgabe beim Backup ist es nun, die verschiedenen Level-Sicherungen in sinnvollen Zeiträumen anzuordnen, zum Beispiel * Level-0-Backup einmal in 3 Monaten
- Level-1-Backup monatlich
- Level-2-Backup wöchentlich
- Level-3-Backup täglich
Es bietet sich an, ein solches Schema per [../../../../index.php/Linuxfibel_-_System-Administration_-_Zeit_und_Steuerung#Wiederkehrende_Abl.C3.A4ufe_mit_cron cron ]-Job automatisch zu realisieren. Die Aufgabe des Administrators reduziert sich damit auf das rechtzeitige Wechseln der Bänder.
Überprüfung des Archives mit restore
Um einen Vergleich der im Archiv vorhandenen mit den installierten Dateien vorzunehmen, dient das Kommando restore in Verbindung mit der Option -C. Wird kein weiteres Argument angegeben, versucht restore das Archiv von /dev/st0 zu lesen. Wir verweisen es deshalb auf eine andere Datei (Option -f Datei) :
# restore -C -f /dev/fd0 Dump date: Tue Aug 15 15:38:38 2000 Dumped from: the epoch Level 0 dump of / on sonne:/dev/hda5 (dir /etc/rc.d) Label: none filesys = / ./lost+found: (inode 11) not found on tape ./usr: (inode 2049) not found on tape ...
Die angeblich fehlenden Dateien sind auf einen Link im archivierten Verzeichnis zurückzuführen und können ignoriert werden.
Recovery mit restore
Zum Recovery der Daten wird im einfachsten Fall ein Archiv mittels recover und der Option -r zurückgeschrieben. Beachten Sie, falls Sie alle Daten durch ihre Kopie aus den Archiven ersetzen wollen, alle Archive in der Reihenfolge ihrer Aufzeichnung einzuspielen, das heißt Sie spielen zunächst das volle Backup (Level 0) ein, dann alle Backups des Levels 1 usw.
# restore -r -f /dev/fd0
Eine Besonderheit von recover ist der interaktive Modus (Option -i), der die Selektion einzelner Dateien aus einem Archiv ermöglicht.
# restore -i -f /dev/fd0 Verify tape and initialize maps Tape block size is 32 Dump date: Tue Aug 15 15:38:38 2000 Dumped from: the epoch Level 0 dump of / on dev17:/dev/hda5 (dir tmp) Label: none Extract directories from tape Initialize symbol table. restore > help Available commands are: ls [arg] - list directory cd arg - change directory pwd - print current directory add [arg] - add `arg' to list of files to be extracted delete [arg] - delete `arg' from list of files to be extracted extract - extract requested files setmodes - set modes of requested directories quit - immediately exit program what - list dump header information verbose - toggle verbose flag (useful with ``ls) help or `?' - print this list If no `arg' is supplied, the current directory is used restore > ls .: 2. / 2. ./ 6145 tmp/ restore > verbose verbose mode off restore > ls .: tmp/ restore > quit
Die Kommandos [../../../../index.php/Ls ls, ][../../../../index.php/Cd cd ]und [../../../../index.php/Pwd pwd ]besitzen gleiche Bedeutung wie in der Shell, wobei als Argument für [../../../../index.php/Ls ls ]nur Dateinamen mit enthaltenen Metazeichen jedoch keine Optionen zulässig sind.
Um nun eine Liste der zu extrahierenden Dateien zu erstellen, werden Dateien mit add hinzugefügt und mittels delete entfernt. In der Ausgabe von ls erscheint eine Markierung vor den in der Liste enthaltenen Dateien.
Mit extract werden schließlich die markierten Dateien aus dem Archiv ins System eingespielt, wobei recover zunächst zur Eingabe der Volumenummer auffordert (also das Band, auf dem sich die Datei befindet). Ein Beispieldialog könnte wie folgt aussehen:
restore > add boot*
restore > ls boot* *bootsec.lin restore > extract You have not read any tapes yet. Unless you know which volume your file(s) are on you should start with the last volume and work towards the first. Specify next volume #: 1 Mount tape volume 1 Enter ``none if there are no more tapes otherwise enter tape name (default: /dev/fd0) resync restore, skipped 64 blocks set owner/mode for '.'? [yn] n restore >