Ich habe vor kurzem beschlossen, einige Daten zu archivieren mitTeer. Die Daten bestehen aus zahlreichen Backups desselben Ordners; das heißt, sie enthalten viele Duplikate. Ich habe gelesen, dass Tar, da es keinen Index hat, mit Daten, die viele Duplikate enthalten, nicht gut funktioniert. Meine Frage lautet also im Wesentlichen, ob Tar zum Archivieren solcher Daten geeignet wäre?
Mir ist vor allem die Erhaltung aller Originaldaten in einem Archiv wichtig, dazu gehören alle Dateizeitstempel: Erstellung, Änderung, Zugriff.
Antwort1
Natürlich kann Tar diese Backups archivieren, egal wie viele Duplikate Sie darin haben. Wenn Sie 100 Duplikate der Datei abc.doc in 100 verschiedenen Ordnern haben, wird sie 100 Mal archiviert. Das heißt, es ist nicht effizient.
Wenn ein Backup-Tool Daten deduplizieren kann, erkennt es diese 100 identischen Dateien, sichert eine davon und verweist 99 Mal darauf. Wenn sich eine dieser Versionen ändert, entfernt es den Verweis und sichert sie separat.
Antwort2
GNU-Tar
Erstellungszeitpunkt:
Linux zeichnet die Erstellungszeit von Dateien nicht wirklich auf. Es verfügt über den ctime
Zeitstempel, der manchmal mit der Erstellungszeit verwechselt wird, aber eigentlich die „Inode-Änderungszeit“ ist: Er zeichnet auf, wann die Datei oder ihre Berechtigungen, ihr Besitzer usw. zum letzten Mal geändert wurden. D. h., er ändert sich häufiger als mtime
. Der ctime
Stempel wird vom Kernel verwaltet und kann vom Benutzer nicht auf beliebige Werte gesetzt werden (obwohl Sie ihn problemlos auf die aktuelle Zeit zurücksetzen können).
Änderungszeit:
mtime
wird bewahrt durchtar
Zugriffszeit:
tar
ändert normalerweise die Zugriffszeit sogar auf die Originaldatei. Sie können dies mit dem --atime-preserve
Flag verhindern. Möglicherweise möchten Sie auch das --preserve
Tag, das Berechtigungen (und auch die Sortierreihenfolge des Verzeichnisses) beibehält.
Ich weiß nicht, ob Sie tar
die Zeitangaben für die archivierten Dateien beibehalten können, aber Sie können diese jederzeit folgendermaßen beheben:
- Enttackern
- Anwendung
touch -a -d TIME FILE
auf jede Datei (mit der Zeit im Format[[CC]YY]MMDDhhmm[.ss]
) - Neuteerung mit
tar --atime-preserve
Warnung: Using --atime-preserve
current merkt sich die atime, damit sie nach dem Lesen beibehalten werden kann. Auf den meisten Systemen führt dies dazu, dass sich die ctime ändert, was manchmal zu Störungen bei anderer Software (z. B. Sicherheitssoftware) führen kann.
Andere Software
Sie könnten sich Folgendes ansehen rsync
(sieheDieser Artikelzum Beispiel) oder ein Versionskontrollsystem (wie git
)