Die Sicherung meiner Dateien erledige ich ganz einfach per Skript und dem Befehl cp
. Die wichtigen Daten schreibe ich so auf eine externe USB-Festplatte, zwischendurch noch auf DVD oder CD. Komprimieren mag ich sie nicht, weil ich die Dateien im direkten Zugriff haben möchte. Das ginge ja mit per tar
erzeugten Archiven auch fast, aber irgendwie ist das eine Spinnerei von mir. Dazu erzeuge ich jeweils Verzeichnisse, deren Namen das aktuelle Datum abbilden. Das habe ich hier mal beschrieben.
Neulich wollte ich dann aber doch mein gesamtes Heimverzeichnis sichern. Weil das Ding recht gross ist, schien mir das Verwenden eines komprimierten Archivs sinnreich. In meiner kindlichen Naivität befahl ich dann ganz einfach:
tar czf backup.tgz /home/roman/
Das hat natürlich nicht geklappt, obschon kein syntaktischer Fehler vorhanden ist. Das Archiv würde viel zu gross. Deswegen quittierte das Programm die Ausführung mit dem Fehler:
tar: Nicht behebbarer Fehler: Programmabbruch.
Am besten splittet man solche grossen Sicherungen in kleine Teile auf. Mal davon abgesehen, dass es nicht zwingend sinnvoll ist, das gesamte Home-Verzeichnis zu sichern, erreicht man die Splittung per tar ganz einfach. In meinem Beispiel habe ich 2 GB grosse Portionen erstellt:
tar czf - /home/roman/ | split -b2000m - /ZielVerzeichnisDesArchivs/sicherung.tgz
tar legt dann die verschiedenen Teile des Archivs an, welches entweder per Doppelklick der ersten Datei wiederhergestellt oder angesehen werde kann, oder per Konsole mit dem Befehl
tar xzf - < sicherung.tgz*
Im Terminal ist dann während dem Erstellen der Archive folgender Hinweis zu lesen:
tar: Entferne führende „/“ von Elementnamen
Das ist kein Fehler, sondern ein recht sinnreicher “Mechanismus”. Damit wird verhindert, dass beim Zurückspielen einer Sicherung in den Originalpfad das übergeordnete Verzeichnis überschrieben wird, sondern bloss der Inhalt. Will man diese Meldung umgehen, müssten relative statt absolute Pfadangaben im Sicherungsskript verwendet werden.