Ist es möglich eine ganze Linux Partition in ein tar zu archivieren und anschließend zu komprimieren?
Hallo,
ich möchte mein automatisiertes Backup Script verbessern in dem ich nicht mehr Teile des Linux sichere, sondern aus der ganzen Linux Partition ein "tar" mache und dies dann vor dem verschieben aufs NAS komprimiere. Bevor ich mich ins Thema "tar" und "tar"-Komprimieren einlese hätte ich erst einmal die Grundsatzfrage ob dies möglich ist.
Wenn ja wäre es toll wenn ihr mir den groben Ansatz beschreiben könntet, damit ich weiß wo ich, bzw wonach ich nachschlagen muss.
Vielen Dank im Voraus
4 Antworten
Wenn du das ganze auf Dateisystemebene machen willst:
tar -c /mountpoint/der/partition | gzip -9 > /zielort/des/backups.tar.gz
Alternativ:
tar -czf /zielort/des/backups.tar.gz /mountpoint/der/partition
Da du aber von "Partition" schreibst, ergibt das ganze per tar nur bedingt Sinn.
Hier wäre eher etwas wie
dd if=/dev/sdXn bs=100M | gzip -9 > /zielort/des/backups.img.gz
passend.
Evtl würde ich mit exclude sogar unwichtiges ausschließen wollen.
Dazu hätt ich auch ein paar Vorschläge:
- /mnt
- /media
- /tmp
- /sys
- /proc
- /dev
Glaub aus tar wäre es auch einfacher nur Teile des Packets wieder zu extrahieren oder?
In der Tat:
tar -xzf /dein/backup.tar.gz irgendeine/datei/im/backup.xyz
oder auch, wenn du irgendeine/datei/im/backup.xyz explizit nach /home/dnsxxx/irgendeine/datei/im/backup.xyz entpacken willst:
tar -C /home/dnsxxx -xzf /dein/backup.tar.gz irgendeine/datei/im/backup.xyz
Im Endeffekt ist beides das gleiche.
Der einzige wirkliche Unterschied wäre der, dass man bei ersterem zum einen den Komprimierungsgrad explizit bestimmen kann (geht evtl. auch mit zweiterem, da müsst ich bzw. du mal die man-Page durchblättern ^^), zum anderen aber auch anstelle von gzip jedes beliebige andere Kompressionstool, das dazu geeignet ist, einen Datenstrom von stdin einzulesen und komprimiert nach stdout auszugeben (wenn's länger dauern darf und möglichst klein sein soll, wäre xz ein ganz hübsches Beispiel).
Nein, beide sind bis auf die anderthalb erwähnten Kleinigkeiten absolut identisch.
Ob du jetzt
tar -cf foobar.tar fizzbuzz/
oder
tar -c fizzbuzz/ > foobar.tar
verwendest ist im Ergebnis exakt das gleiche. Das gilt auch, wenn du -z verwendest oder das ganze über gzip leitest.
tar c?f file.tar.? Quelle
Siehe man page von tar, generell gilt:
z=gzip,j=bzip2,J=xz anstelle des Fragezeichens, ferner gibt es --lzma, --lzop, --lzip, Du darfst auch --bzip anstatt j nehmen.Ferner gibt es -a (Auto compression, auf Basis des Suffix.)
Vielleicht noch generell, Du solltest Dir bei allen BAckups auf Dateibasis über die Probleme bewußt sein, die entstehen können, wenn Dateien in Benutzung sind.
Grosse tar-Archive können teils sehr lange dauern. Für deinen Anwendungsfall bzw. Backups im Allgemeinen würde ich also nicht tar nehmen. Dafür ist rsync zum Beispiel besser geeignet, auch um auf ein NAS zu schreiben.
Rsync ist mein momentaner Weg. Dieser funktioniert aber leider nicht einwandfrei. Musste sehr viele Abstriche machen um dies zum laufen zu bekommen. Ich kann die Rechte nicht behalten, da es auf ein CIFS Laufwerk geschrieben wird. Auch kann ich dadurch keinerlei Links mit kopieren. Für meine NTFS Partition funktioniert es einwandfrei, aber diesem Fall für Linux hab ich doch eher viele Probleme wieso ich mich nach Alternativen umschaue. Ausserdem dauert das mit rsync auch oft schon sehr lange.
tar ist historisch betrachtet dazu gemacht worden um ganze Partitionen auf Band (Magnetband) zu speichern.
Es geht also. Ich denke aber dass das eher unpraktisch ist. Beim komprimieren können die Daten durch Fehler kompromittiert werden.
Ich kopieren meine Datenpartition um sie zu sichern, unwichtige Daten habe ich dort nicht.
Vielen Dank für die schnelle Antwort.
Wenn ich so darüber nachdenke war wohl Partition unpassend. Evtl würde ich mit exclude sogar unwichtiges ausschließen wollen.
Glaub aus tar wäre es auch einfacher nur Teile des Packets wieder zu extrahieren oder? Beispielsweise wenn ich aus dem Backup nur bestimmte Dokumente benötige. Oder geht das mit tar nicht?