Mit tar können einzelne Dateien oder ganze Verzeichnisse in
ein ein Archiv gepackt werden. Da tar für grössere Systeme
geschrieben wurde, versucht es standardmässig auf ein
Bandlaufwerk zu schreiben.
Dies stellt kein grosses Problem dar, da man mit der Option
-f den Datenstrom in eine Datei (f für File) umleiten kann.
Daher wird im Verlauf des Textes tar immer auch mit -f
aufgerufen.
tar ist zwar ein älteres Programm, doch ist es sehr weit
verbreitet und unter vielen Systemen verfügbar. So kann man
davon ausgehen, tar immer zur Verfügung zu haben.
user@linux $
tar [Optionen] [Ziel] [Dateien und Verzeichnisse]
|
Will man eine neue Datei erstellen, genügen die Optionen
-cf. Dabei werden aber die vorangestellten / der Pfadangaben
entfernt. Will man die Dateien im Rahmen eines Restore
zurückschreiben, braucht man aber die ganzen Pfade. Diese müssen
beim Restore entweder angegeben werden oder beim Erstellen durch
die Option -P explizit angefordert werden:
user@linux $
tar -Pcf /mnt/disk2/backup-1.tar /home/
|
Mit diesem Aufruf werden alle Dateien unter /home in die Datei
/mnt/disk2/backup-1.tar gespeichert. Die gesamten Pfade bleiben
erhalten, doch werden diese relativ von dem Ort aus eingetragen,
von dem man tar aufruft.
Hinweis:
Durch die Verwendung von -P kann man die Dateien nur an ihren
ursprünglichen Ort wiederherstellen. Will man sich alle Möglichkeiten
offen halten, sollte man daher auf -P verzichten.
|
|
tar wurde vor allem für ganze Backups gemacht. Es gibt aber
einige mehr oder weniger einfache Möglichkeiten, inkrementelle
Backups zu machen.
Die einfachste Form ist wohl die Verwendung der Option -g beim
ersten vollen Backup.
Dabei werden Informationen über die gesicherten Dateien in
eine externe Datei zeitstempel geschrieben:
user@linux $
tar -vcf /mnt/disk2/backup-1.tar -g zeitstempel /home/
|
Beim inkrementellen Backup lautet der Aufruf bis auf den Archivnamen
gleich, doch sichert tar diesmal nur die Dateien, die sich seit dem
vollen Backup geändert haben.
Man kann tar auch mitteilen, das es nur Dateien sichern soll, die sich
seit einem bestimmten Datum geändert haben. Bei diesem Aufruf werden
die seit dem 1. November modifizierten Dateien getart:
user@linux $
tar -N 2002-11-01 -Pcf /mnt/disk2/backup-1.tar /home/
|
Will man ein eigenes kleines Backupscript schreiben, das einem
alle Dateien sichert, die neuer als 5 Tage sind, kann man date
zur Mitarbeit bewegen:
user@linux $
tar -N $(date -d "now 5 days ago" +%Y-%b-%d) -Pcf /mnt/disk2/backup-1.tar /home/
|
|
Man kann ein nach dem zuvor erklärten Verfahren erstelltes
Archiv auch komprimieren. Dazu genügt der Aufruf von gzip:
user@linux $
gzip backup-1.tar
|
Danach befindet sich im Verzeichnis eine Datei mit dem Namen
backup-1.tar.gz. Um die Datei zu dekomprimieren, ruft man an
der Stelle von gzip das Tool gunzip auf:
user@linux $
gunzip backup-1.tar.gz
|
Es gibt bei tar aber auch eine integrierte Methode. Mit der
Option -z wird gzip durch tar aufgerufen und es gibt keinen
Umweg über einen zweiten Befehl. Neben gzip kann auch bzip2
für die Komprimierung verwendet werden. Dafür dient die
Option -j.
user@linux $
tar -zcf /mnt/disk2/backup-1.tar /home/
user@linux $
ls
backup-1.tar.gz
|
|
Eine der wichtigsten Schritte beim Anlegen eines Backups ist
dessen Überprüfung. Mit der Option -d geht dies sehr einfach,
sofern man noch in dem Verzeichnis ist, in dem man tar gestartet
hatte und die Option -P verwendete:
user@linux $
tar -df /mnt/disk2/backup-1.tar
|
Wenn alles stimmt, gibt tar keine Fehlermeldung aus. Hat man
-P nicht verwendet, muss man tar den Pfad mitgeben:
user@linux $
tar -C /home -df /mnt/disk2/backup-1.tar
|
Diese Option geht ebenfalls, wenn man zwischenzeitlich das
Verzeichnis gewechselt hat.
Will man wissen, was alles im Archiv ist, genügt ein -t
user@linux $
tar -tf /mnt/disk2/backup-1.tar
/home/jg/datei1 /home/jg/datei2 /home/jg/datei3 /home/jg/datei4
|
|
Nachdem das Archiv ordentlich geschrieben und geprüft wurde,
kann man sich erst einmal ruhig zurücklehnen. Da aber
erfahrungsgemäss immer etwas passieren kann, sollte man auch
etwas über die Wiederherstellung wissen. Die dafür notwendige
Option ist -x (extract = extrahieren). Damit man weiss was
gerade passiert, gibt es -v (verbose = wortreich):
user@linux $
tar -xvzf /mnt/disk2/backup-1.tar.gz
|
oder mit zusätzlicher Pfadangabe und einem nicht komprimierten
Archiv:
user@linux $
tar -C /home -xvf /mnt/disk2/backup-1.tar
|
|
|