In diesem Kapitel erfahren Sie, wie Sie Ihre Daten mit GNU/Linux sichern und wiederherstellen.
Ziele: In diesem Kapitel lernen zukünftige Linux-Administratoren Folgendes:
die Befehle tar und cpio verwenden, um eine Sicherung zu erstellen; die Backups überprüfen und die Daten zurückstellen; die Backups komprimieren oder dekomprimieren.
Backup, Wiederherstellung, Kompression
Vorkenntnisse: Komplexität:
Lesezeit: 41 Minuten
Anmerkung
In diesem Kapitel verwenden die Kommando-Anweisungen „device“, um sowohl einen Zielspeicherort für die Sicherung als auch den Quellspeicherort für die Wiederherstellung anzugeben. Das „device“ kann entweder ein externes Medium oder eine lokale Datei sein. Sie sollten im Laufe des Kapitels ein Gefühl dafür bekommen, können aber bei Bedarf jederzeit zur Klärung auf diesen Hinweis zurückgreifen.
Die Sicherung wird der Anforderungen entsprechen, Daten sicher und effektiv zu speichern und wiederherzustellen.
Mit dem Backup können Sie sich vor Folgendem schützen:
Zerstörung: mutwillig oder versehentlich. Menschlich oder technisch. Malware, ...
Löschen: mutwillig oder versehentlich. Menschlich oder technisch. Malware, ...
Integrität: Daten sind unbrauchbar.
Kein System ist unfehlbar, kein Mensch ist unfehlbar, also um Datenverlust zu vermeiden, müssen Backups durchgeführt werden, um nach einem Problem di Daten wiederherstellen zu können.
Die Sicherungsmedien sollten in einem anderen Raum (oder Gebäude) als dem Server aufbewahrt werden, damit im Falle eines Desaster der Server und die Sicherungen nicht gleichzeitig zerstört werden.
Darüber hinaus muss der Administrator regelmäßig überprüfen, ob die Medien noch lesbar sind.
Es gibt zwei grundsätzliche Sicherungsarten: das Backup und das Archiv.
Das Archiv zerstört die Informationsquelle nach der Operation.
Die Sicherung bewahrt die Informationsquelle nach der Operation.
Diese Operationen bestehen darin, Informationen in einer Datei, auf einem Peripheriegerät oder einem unterstützten Datenträger (Tapes, Disks, ...) zu speichern.
Voraktuelle: zu einer bestimmten Zeit (vor einer Systemaktualisierung, ...).
Periodisch: Täglich, wöchentlich, monatlich, ...
Hinweis
Vor einer Systemänderung kann es nützlich sein, ein Backup zu erstellen. Es hat jedoch keinen Sinn, täglich Daten zu sichern, die nur jeden Monat geändert werden.
Abhängig von den verfügbaren Dienstprogrammen wird es möglich sein, mehrere Arten von Restaurierungen durchzuführen.
vollständige Restaurierung: Verzeichnisse, ...
Selektive Wiederherstellung: Teil des Baumes, Dateien, ...
Es ist möglich, ein ganzes Backup wiederherzustellen, aber es ist auch möglich, nur einen Teil davon wiederherzustellen. Beim Wiederherstellen eines Verzeichnisses werden jedoch die nach der Sicherung erstellten Dateien nicht gelöscht.
Hinweis
Um ein Verzeichnis wiederherzustellen, wie es zum Zeitpunkt der Sicherung war, ist es notwendig, den Inhalt vollständig zu löschen, bevor die Wiederherstellung gestartet wird.
Durch die Verwendung einer Namenskonvention ist es möglich, den Inhalt einer Backup-Datei schnell zu steuern und so gefährliche Restaurierungen zu vermeiden.
Name des Verzeichnisses;
benutztes Tool;
verwendete Option;
Datum.
Hinweis
Der Name der Datensicherung muss ein expliziter Name sein.
Anmerkung
Das Konzept der Erweiterung unter GNU/Linux existiert nicht. Mit anderen Worten, wir verwenden hier Erweiterungen für den menschlichen Operator. Wenn der Systemadministrator zum Beispiel eine .tar.gz oder .tgz Dateierweiterung sieht, dann weiß er, wie man mit der Datei umgeht.
Der tar Befehl erlaubt das Speichern auf mehreren aufeinanderfolgenden Medien (Mehr-Volumen Optionen).
Es ist möglich, das ganze oder einen Teil eines Backups zu extrahieren.
tar sichert implizit im relativen Modus, auch wenn der Pfad der zu sichernden Informationen im absoluten Modus angegeben wird. Sicherungen und Restaurierungen sind jedoch im absoluten Modus möglich.
wo: der Ort, an dem die Daten wiederhergestellt werden;
wie: absolut oder relativ.
Warnung
Vor einer Restaurierung ist es wichtig, sich Zeit zu nehmen, um über die geeignetste Methode nachzudenken und zu bestimmen, um Fehler zu vermeiden.
Die Wiederherstellung erfolgt in der Regel, nachdem ein Problem aufgetreten ist, das schnell behoben werden muss. Eine schlechte Wiederherstellung kann die Situation in einigen Fällen noch verschlimmern.
Das Standardwerkzeug zum Erstellen von Sicherungen auf UNIX-Systemen ist der tar Befehl. Diese Backups können durch bzip2 komprimiert werden, xz, lzip, lzma, lzop, gzip, compress oder zstd.
tar erlaubt es Ihnen, eine einzelne Datei oder ein Verzeichnis aus einem Backup zu extrahieren, dessen Inhalt anzusehen oder seine Integrität zu überprüfen.
Ein nicht-komprimiertes Backup wird explizit im absoluten Modus mit den cvfP Optionen erstellt:
$ tar c[vf]P [device] [file(s)]
Beispiel:
[root]# tar cvfP /backups/home.133.P.tar /home/
Option
Beschreibung
P
Backup im absoluten Modus erstellen.
Warnhinweis
Mit dem P-Key muss der Pfad der zu sichernden Dateien als absolute eingegeben werden. Wenn die beiden Bedingungen (Schlüssel P und Pfad absolute) nicht angegeben sind, befindet sich das Backup im relativen Modus.
Das Erstellen einer komprimierten Sicherung mit gzip erfolgt mit den cvfz Optionen:
$ tar cvzf backup.tar.gz dirname/
Option
Beschreibung
z
Komprimiert die Sicherung in gzip.
Anmerkung
Die Erweiterung .tgz ist gleichbedeutend mit .tar.gz.
Anmerkung
Das Behalten der cvf (tvf oder xvf) Optionen unverändert für alle Backup-Operationen und das einfache Hinzufügen der Komprimierungsoption zum Ende macht den Befehl einfacher zu verstehen (z.B., cvfz oder cvfj, etc.).
Die Komprimierung und damit die Dekomprimierung werden Auswirkungen auf den Ressourcenverbrauch (Zeit und CPU-Auslastung) haben.
Hier ist ein Ranking der Komprimierung einer Reihe von Textdateien, von am wenigsten effizient bis am effizientesten:
compress (.tar.Z)
gzip (.tar.gz)
bzip2 (.tar.bz2)
lzip (.tar.lz)
xz (.tar.xz)
Eine Datei oder Verzeichnis zu einer bestehenden Sicherung hinzufügen¶
Es ist möglich, ein oder mehrere Elemente zu einer bestehenden Datensicherung hinzuzufügen.
tar {r|A}[key(s)] [device] [file(s)]
Um /etc/passwd zum Backup /backups/home.133.tar hinzuzufügen:
[root]# tar rvf /backups/home.133.tar /etc/passwd
Das Hinzufügen eines Verzeichnisses ist ähnlich. Hier soll dirtoadd zu backup_name.tar hinzugefügt werden:
$ tar rvf backup_name.tar dirtoadd
Option
Beschreibung
r
Fügt eine oder mehrere Dateien am Ende einer direkten Mediensicherung (Festplatte) hinzu.
A
Fügt eine oder mehrere Dateien am Ende eines Backups auf sequentiellen Zugriffsmedien (Band) hinzu.
Anmerkung
Es ist nicht möglich, Dateien oder Ordner zu einer komprimierten Sicherung hinzuzufügen.
$ tar rvfz backup.tgz filetoadd
tar: Cannot update compressed archives
Try `tar --help' or `tar --usage' for more information.
Anmerkung
Wenn die Sicherung im relativen Modus durchgeführt wurde, fügen Sie Dateien au h im relativen Modus hinzu. Wenn die Sicherung im absoluten Modus durchgeführt wurde, fügen Sie Dateien im absoluten Modus hinzu.
Das Mischen von Modi kann bei der Wiederherstellung zu Problemen führen.
Das Betrachten des Inhalts einer Sicherung ohne Extrahieren ist möglich.
tar t[key(s)] [device]
Option
Beschreibung
t
Zeigt den Inhalt einer Sicherung (komprimiert oder nicht).
Beispiele:
$ tar tvf backup.tar
$ tar tvfz backup.tar.gz
$ tar tvfj backup.tar.bz2
When the number of files in a backup becomes large, it is possible to pipe the result of the tar command to a pager (more, less, most, etc.):
$ tar tvf backup.tar | less
Hinweis
Um den Inhalt eines Backups aufzulisten oder abzurufen, ist es nicht notwendig, den Komprimierungsalgorithmus anzugeben, der bei der Erstellung des Backups verwendet wurde. Das heißt, ein tar tvf entspricht tar tvfj, um den Inhalt zu lesen, und ein tar xvf entspricht tar xvfj, beim Extrahieren.
Die Integrität eines Backups kann bei der Erstellung mit der Option W getestet werden:
$ tar cvfW file_name.tar dir/
Die Integrität eines Backups kann nach der Erstellung mit der Option d getestet werden:
$ tar vfd file_name.tar dir/
Hinweis
Durch Hinzufügen eines zweiten v zum vorherigen Schlüssel, erhalten Sie die Liste der archivierten Dateien sowie die Unterschiede zwischen den archivierten und den im Dateisystem vorhandenen Dateien.
Extrahieren (untar) eines *.tar Backup wird mit den xvf Optionen gemacht:
Extrahieren Sie die etc/exports Datei aus dem /savings/etc.133.tar Backup in das etc Verzeichnis des aktiven lokalen Verzeichnisses:
$ tar xvf /backups/etc.133.tar etc/exports
Extrahieren Sie alle Dateien aus der komprimierten Sicherung /backups/home.133.tar.bz2 in das aktive lokale Verzeichnis:
[root]# tar xvfj /backups/home.133.tar.bz2
Entpacken Sie alle Dateien aus dem Backup /backups/etc.133.P.tar in das ursprüngliche Verzeichnis des Backups:
$ tar xvfP /backups/etc.133.P.tar
Warnhinweis
Gehen Sie zur richtigen Stelle.
Prüfen Sie den Inhalt des Backups.
Option
Beschreibung
x
Extrahieren Sie Dateien aus der Sicherung, komprimiert oder nicht.
Das Entpacken eines tar-gzipped (*.tar.gz) Backups erfolgt mit den xvfz Optionen:
$ tar xvfz backup.tar.gz
Das Entpacken eines tar-bzipped (*.tar.bz2) Backups erfolgt mit den xvfj Schlüsseln:
$ tar xvfj backup.tar.bz2
Hinweis
Um den Inhalt eines Backups zu extrahieren oder aufzulisten, ist es nicht notwendig, den Komprimierungsalgorithmus zu erwähnen, mit dem das Backup erstellt wurde. Das heißt, ein tar xvf entspricht tar xvfj, um den Inhalt zu extrahieren, und ein tar tvf entspricht tar tvfj, der Liste entsprechend.
Warnhinweis
Um die Dateien in ihrem ursprünglichen Verzeichnis wiederherzustellen (Schlüssel P eines tar xvf), sollten Sie das Backup mit dem absoluten Pfad erzeugt haben. Das heißt, mit dem P-Schlüssel eines tar cvf.
Um eine bestimmte Datei aus einem tar Backup zu extrahieren, geben Sie den Namen der Datei am Ende des tar xvf Befehls an.
$ tar xvf backup.tar /path/to/file
Der vorherige Befehl extrahiert nur die /path/to/file Datei aus der backup.tar Sicherung. Diese Datei wird im Verzeichnis /path/to/ wiederhergestellt, das im aktiven Verzeichnis erstellt oder bereits vorhanden ist.
$ tar xvfz backup.tar.gz /path/to/file
$ tar xvfj backup.tar.bz2 /path/to/file
Um nur ein Verzeichnis (einschließlich seiner Unterverzeichnisse und Dateien) aus einem Backup zu extrahieren, geben Sie den Verzeichnisnamen am Ende des tar xvf Befehls an.
$ tar xvf backup.tar /path/to/dir/
Um mehrere Verzeichnisse zu extrahieren, geben Sie jeden der Namen nacheinander an:
$ tar xvf backup.tar /path/to/dir1/ /path/to/dir2/
$ tar xvfz backup.tar.gz /path/to/dir1/ /path/to/dir2/
$ tar xvfj backup.tar.bz2 /path/to/dir1/ /path/to/dir2/
Extrahieren Sie eine Gruppe von Dateien aus einem tar Backup mit regulären Ausdrücken (regex)¶
Geben Sie einen regulären Ausdruck (regex) an, um die Dateien zu extrahieren, die dem angegebenen Auswahlmuster entsprechen.
Zum Beispiel, um alle Dateien mit der Endung .conf zu extrahieren:
$ tar xvf backup.tar --wildcards '*.conf'
keys:
--wildcards *.conf entspricht Dateien mit der Endung .conf.
Der cpio Befehl erlaubt das Speichern auf mehreren aufeinanderfolgenden Medien, ohne irgendwelche Optionen anzugeben.
Es ist möglich, das ganze oder einen Teil eines Backups zu extrahieren.
Im Gegensatz zum tar Befehl gibt es keine Möglichkeit, gleichzeitig zu sichern und zu komprimieren. So geschieht es in zwei Schritten: Backup und Kompression.
Um ein Backup mit cpiodurchzuführen, müssen Sie eine Liste der zu sichernden Dateien angeben.
Diese Liste wird mit den Befehlen find, ls oder cat zur Verfügung gestellt.
find : Durchsucht einen Baum, rekursiv oder nicht;
ls : listet ein Verzeichnis auf, rekursiv oder nicht;
cat : liest eine Datei mit den zu speichernden Verzeichnis-Bäumen oder Dateien aus.
Anmerkung
ls kann nicht mit -l (Details) oder -R (rekursiv) verwendet werden.
Das Ergebnis des find Befehls wird als Eingabe an den cpio Befehl über eine Pipe gesendet (Zeichen |, AltGr + 6).
Hier liefert der Befehl find /etc eine Liste von Dateien, die dem Inhalt des /etc Verzeichnis entsprechen (rekursiv) an den Befehl cpio welches die Sicherung ausführt.
Vergessen Sie nicht das Zeichen > beim Speichern oder das Zeichen F save_name_cpio.
Optionen
Beschreibung
-o
Erstellt ein Backup (output).
-v
Verbose, zeigt den Namen der verarbeiteten Dateien an.
Im Gegensatz zum tar Befehl gibt es keine Option, um gleichzeitig zu speichern und zu komprimieren. So geschieht es in zwei Schritten: speichern und dann komprimieren.
Die Syntax der ersten Methode ist leichter zu verstehen und sich zu erinnern, weil es in zwei Schritten getan wird.
Für die erste Methode wird die Sicherungsdatei automatisch von dem gzip Programm umbenannt, das .gz an das Ende des Dateinamens hinzufügt. Ebenso fügt das bzip2 Programm .bz2 automatisch hinzu.
Stellt nur die Dateien wieder her, deren Name in der Datei enthalten ist.
--make-directories or -d
Erstellt die fehlende Baumstruktur neu.
-u
Ersetzt alle Dateien, auch wenn sie existieren.
--no-absolute-filenames
Ermöglicht die Wiederherstellung einer im absoluten Modus erstellten Sicherung.
Warnhinweis
Standardmäßig zum Zeitpunkt der Wiederherstellung, Dateien auf der Festplatte, deren letztes Änderungsdatum jünger oder gleich dem Datum der Sicherung ist, werden nicht wiederhergestellt (um zu vermeiden, dass aktuelle Informationen mit älteren Informationen überschrieben werden).
Die u Option hingegen erlaubt es, ältere Versionen der Dateien wiederherzustellen - ggf. neue zu überschreiben.
Beispiele:
Absolute Wiederherstellung einer absoluten Sicherung
$ cpio –ivF home.A.cpio
Absolute Wiederherstellung auf einer bestehenden Baumstruktur
Mit der Option u können Sie vorhandene Dateien an dem Ort überschreiben, an dem die Wiederherstellung stattfindet.
$ cpio –iuvF home.A.cpio
Absolute Sicherung im relativen Modus wiederherstellen
Die lange Option no-absolute-Dateinamen erlaubt eine Wiederherstellung im relativen Modus. Tatsächlich wird das Zeichen / am Anfang des Pfades entfernt.
$ cpio --no-absolute-filenames -divuF home.A.cpio
Hinweis
Die Erstellung von Verzeichnissen ist vielleicht notwendig, daher die Verwendung der d Option
Relative Sicherung wiederherstellen
$ cpio –iv <etc.cpio
Absolute Wiederherstellung einer Datei oder eines Verzeichnisses
Die Wiederherstellung einer bestimmten Datei oder eines bestimmten Verzeichnisses erfordert die Erstellung einer Listendatei, die dann gelöscht werden sollte.