Dump/Restore: Unterschied zwischen den Versionen

Aus Foxwiki
K Textersetzung - „[[Kategorie:“ durch „[[Category:“
K Textersetzung - „[[Category:“ durch „[[Kategorie:“
Markierung: Manuelle Zurücksetzung
Zeile 151: Zeile 151:
  restore >
  restore >


[[Category:Linux:Backup]]
[[Kategorie:Linux:Backup]]

Version vom 3. Juni 2022, 11:50 Uhr

Dump/Restore

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