Ich habe immer GNU verwendet tar
. Alle GNU / Linux-Distributionen, die ich gesehen habe, werden jedoch bsdtar
in ihren Repositorys ausgeliefert. Ich habe sogar gesehen, dass es in einigen, IIRC, standardmäßig installiert ist. Ich weiß mit Sicherheit, dass Arch GNU / Linux es als Teil von basedevel
(vielleicht base
, aber ich bin mir nicht sicher) benötigt, wie ich es in PKGBUILDs gesehen habe.
Warum sollten Sie bsdtar
anstelle von GNU verwenden tar
? Was sind die Vorteile?
Beachten Sie, dass ich die Person bin, die gefragt hat: Was sind die Hauptunterschiede zwischen BSD und GNU / Linux Userland? .
Antworten:
Das Ubuntu
bsdtar
ist eigentlich die Tar-Implementierung, mit der es gebündelt istlibarchive
. und das sollte von der klassischen unterschieden werdenbsdtar
. Einige BSD-Varianten verwenden sielibarchive
für ihre Tar-Implementierung, zB FreeBSD.GNUtar
unterstützt die anderen Teervarianten und die automatische Komprimierungserkennung.Als Visualisierung den Klappentext von Ubuntu eingefügt hat, gibt es einige Dinge, die spezifisch sind für
libarchive
:libarchive
ist per definitionem eine bibliothek und unterscheidet sich sowohl klassischbsdtar
als auchGNUtar
auf diese weise.libarchive
Einige ältere obskure GNU-Tar-Variationen konnten nicht gelesen werden. Am bemerkenswertesten war die Codierung einiger Header in base64, sodass die Tar-Datei 7-Bit-Clean-ASCII lautete (dies war für 1.13.6-1.13.11 der Fall und wurde in 1.13.12 geändert) , dieser Code war offiziell nur für 2 Wochen in Teer)libarchive
‚sbsdtar
wird nicht-tar - Dateien lesen (zB ZIP, ISO9660, cpio), aber klassischer bsdtar nicht.Jetzt, da wir
libarchive
aus dem Weg sind, kommt es hauptsächlich auf das an, was in der Klassik unterstützt wirdbsdtar
.Sie können die Hilfeseiten hier selbst sehen:
In Ihrer ursprünglichen Frage haben Sie gefragt, was die Vorteile gegenüber der Klassik sind
bsdtar
, und ich bin nicht sicher, ob es wirklich welche gibt. Das einzige, was wirklich zählt, ist, wenn Sie versuchen, Shell-Skripte zu schreiben, die auf allen Systemen funktionieren müssen. Sie müssen sicherstellen, dass das, an das Sie übergeben,tar
in allen Varianten tatsächlich gültig ist.GNUtar
,libarchive
‚Sbsdtar
, klassischbsdtar
,star
undBusyBox
‘ star
sind sicherlich die tar - Implementierungen , die Sie in den meisten Zeit laufen werden, aber ich bin sicher , es gibt andere , da draußen (frühen QNX zum Beispiel).libarchive
/GNUtar
/star
Sind die funktionsreiche, aber in vielerlei Hinsicht sie sind seit langem von den ursprünglichen Standards (möglicherweise zum Besseren) abgewichen.quelle
BSDTAR vs TAR und vieles mehr
Hier ist ein Vorteil !!
Ich gehe hier auf 5 Themen ein (und gehe weit vom Thema weg, aber es behandelt auch, was Sie wollen):
bsdtar handhabt spärliche Dateien besser als normales tar
* Beispiel: Stellen Sie sich eine 20-tb-Sparse-Datei (BigLun) mit 10 Megadaten in der 20-tb-Sparse-Datei (BigLun) vor. Da es sich um eine Sparse-Datei handelt, nimmt sie nur 10 Megadaten auf dem Laufwerk auf.
So erstellen Sie eine Sparse-Datei:
Sparse-Datei - wie man es macht - erkennt es - alles Sparse-Dateien sind wie "dünne" Luns (wenn Sie es für eine Lun verwenden würden). "dicke" Luns wären eine andere Geschichte.
* zurück zum Thema:
Das Tarieren des Bigluns wird dazu führen, dass der Teer alle 10 Megabyte durchläuft, zusammen mit all den ~ 20-tb-Nullen, die über den Lun verteilt sind. Ich nehme an, es wird einige Zeit dauern, und die Teerdatei wird ziemlich groß sein. Außerdem - extrahiere ich es - habe ich noch nie eine Teer-Datei aus einer spärlichen Datei extrahiert, aber es könnte nicht schön sein; Ich könnte mich hier irren.
bsdtarring the biglun verarbeitet nur die 10-Megabyte-Daten und erstellt kleine Metadaten für die ~ 20-TB-Nullen.
Vorteil? Nun, viele von ihnen; Ich habe oben nur ein paar geschrieben.
Es ist ähnlich wie rsync vs cp
Persönlich stelle ich mir gerne spärliche Dateien wie dünne Luns und normale Dateien wie dicke Luns vor ...
Das nächste Thema ist BTRFS Thin vs Thick Luns:
Bei Dateisystemen wie BTRFS sind Thin Luns spärliche Dateien (machen Sie es mit Truncate, wie im Wiki-Dokument).
tipp : sichern mit bsdtar , kopieren mit cp
Thick-Luns sind reguläre Dateien mit dem Attribut + C (+ C, damit es keine COW gibt, beim Schreiben kopieren, damit alle Schreibvorgänge im Wesentlichen an der Stelle bleiben, an der sie zugewiesen sind. Beim Überschreiben werden für diese Datei keine neuen Schreibvorgänge ausgeführt oder löscht - Forschung COW und BTRFS ). Anstatt die Datei mit Truncate zu erstellen, erstellen Sie sie mit "fallocate -l".
tipp : sichern mit bsdtar oder tar, kopieren mit rsync oder cp
Das nächste Thema ist EXT Thin vs Thick Luns:
dünne luns, die spärlich sind
tipp : sichern mit bsdtar , kopieren mit cp
Thick-Luns sind reguläre Dateien mit dem Attribut + C (+ C, damit es keine COW gibt, beim Schreiben kopieren, sodass alle Schreibvorgänge im Wesentlichen an der zugewiesenen Position bleiben und keine neuen Schreibvorgänge für diese Datei stattfinden, wenn Überschreibungen vorliegen oder löscht - Forschung COW und BTRFS ). Anstatt die Datei mit Truncate zu erstellen, erstellen Sie sie mit "fallocate -l".
tipp : sichern mit bsdtar oder tar, kopieren mit rsync oder cp
Was ist eine dicke vs dünne Datei
In VMWARE ARTIKEL HIER wird Faul gegen Eifrige Null mit dicken Luns / Dateien beschrieben: https://communities.vmware.com/message/2199576
Spitze
Denken Sie daran, dass dick und dünn nicht nur für Luns gilt, sondern auch für Dateien, zfs-Dateisysteme (Shares / Volumes / Luns) und andere Dinge (siehe zfs).
quelle
Aus der Ubuntu-Paketbeschreibung ( http://packages.ubuntu.com/de/lucid/bsdtar )
"Das bsdtar-Programm hat eine Reihe von Vorteilen gegenüber früheren tar-Implementierungen:
quelle
Das Folgende basiert auf Lesen, nicht auf Erfahrung - ich fange gerade mit Freebsd an, daher habe ich fast keine wirkliche Erfahrung damit (ich komme hauptsächlich von Linux). Ich entschuldige mich (und bitte demütig um Korrektur), wenn ich etwas Wichtiges verpasst habe und was ich hier sage, ist Müll ...
Aus meiner Lektüre der Manualseiten (zuletzt die über http://www.freebsd.org/cgi/man.cgi?query=tar&sektion=1 ) geht hervor, dass dem Freebsd-Teer das (-d, --diff) fehlt , --vergleichen). Dies ist nicht verwunderlich, da die Autoren von Freebsd dump / restore anscheinend auch nichts dergleichen geliefert haben.
Ich weiß nicht mit Sicherheit, ob der Gnu-Teer alle UFS-Metadaten enthält, wie es Freebsd-Teer tun soll, und dies ist ein wichtiges Thema. Nach meinem Geschmack kann ich NIEMALS davon ausgehen, dass ein Speicherauszug abgeschlossen ist, bis ich eine MD5-Summe der Ausgabedatei gespeichert habe, UND DANN die Speicherauszugsdatei mit den Daten verglichen habe, die ich angeblich gerade gespeichert habe. Verschiedene Probleme können dazu führen, dass sich die gespeicherten Daten von denen auf der Festplatte unterscheiden. (Nicht nur Dateiänderungen, sondern auch Festplattenfehler, Speicherfehler, Maschinenfehler usw.)
Meiner Meinung nach ist Gnu tar die einzige Option, die ich bisher gefunden habe, um echte Backups auf einem Freebsd-Standardsystem zu erstellen.
Ich würde sehr gerne etwas anderes lernen, FWIW. Ich würde es vorziehen, die nativen Dienstprogramme zumindest für das Klonen von Partitionen und für Backups mit Hard Recovery zu verwenden. Aber wenn man die Richtigkeit eines Dumps nicht überprüfen kann, sehe ich keinen Grund darin, sich die Mühe zu machen, einen zu erstellen.
quelle
bsdtar kann mithilfe der
@archive
Syntax Mitglieder aus anderen Archiven lesen und tarenGNU tar hat die
--delete
Option - obwohl ich kürzlich festgestellt habe, dass es das Archiv beschädigen kann.quelle