J'ai toujours utilisé GNU tar
. Cependant, toutes les distributions GNU / Linux que j'ai vues sont livrées bsdtar
dans leurs référentiels. Je l'ai même vu installé par défaut dans certains, IIRC. Je sais avec certitude que Arch GNU / Linux en a besoin basedevel
(peut base
- être , mais je ne suis pas sûr), comme je l’ai vu dans PKGBUILD.
Pourquoi voudriez-vous utiliser à la bsdtar
place de GNU tar
? Quels sont les avantages?
Notez que je suis la personne qui a demandé Quelles sont les principales différences entre les versions BSD et GNU / Linux? .
Réponses:
Ubuntu
bsdtar
est en fait l’implémentation de tar fournielibarchive
; et cela devrait être différencié du classiquebsdtar
. Certaines variantes de BSD utilisentlibarchive
pour leur implémentation tar, par exemple FreeBSD.GNUtar
prend en charge les autres variantes de tar et la détection de compression automatique.Lorsque la visualisation est collée dans le texte de présentation d’Ubuntu, elle contient quelques éléments spécifiques
libarchive
:libarchive
est par définition une bibliothèque, et différente du classiquebsdtar
etGNUtar
de cette manière.libarchive
ne peut pas lire certaines versions plus anciennes obscures de GNU, le plus notable était le codage de certains en-têtes en base64, de sorte que le fichier tar soit au format ASCII propre 7 bits (c'était le cas pour 1.13.6-1.13.11 et modifié dans 1.13.12 , ce code n'était officiellement dans le goudron que pendant 2 semaines)libarchive
'sbsdtar
lira les fichiers non-tar (par exemple, zip, iso9660, cpio), mais pas bsdtar classique.Maintenant que nous sommes
libarchive
sortis du processus, cela revient essentiellement à ce qui est supporté en classiquebsdtar
.Vous pouvez voir les pages de manuel vous-même ici:
Dans votre question initiale, vous avez demandé quels sont les avantages du classique
bsdtar
, et je ne suis pas sûr qu'il y en ait vraiment. La seule fois que cela compte vraiment, c’est si vous essayez d’écrire des scripts shell qui doivent fonctionner sur tous les systèmes; vous devez vous assurer que ce que vous passez àtar
est réellement valable dans toutes les variantes.GNUtar
,libarchive
« Sbsdtar
, classiquebsdtar
,star
etBusyBox
» star
sont certainement les implémentations de goudron que vous tomberez dans la plupart du temps, mais je suis certain qu'il y en a d' autres là - bas (début QNX par exemple).libarchive
/GNUtar
/star
sont les plus riches en fonctionnalités, mais à bien des égards, ils ont longtemps dévié des normes d'origine (peut-être pour le mieux).la source
BSDTAR vs TAR et bien plus encore
Voici un avantage !!
Je vais entrer dans 5 sujets ici (et aller très loin du sujet, mais cela couvrira aussi ce que vous voulez):
bsdtar gère mieux les fichiers fragmentés que les fichiers tar classiques
* exemple: imaginez un fichier fragmenté de 20 To (appelé biglun) avec 10 Mo de données sur le fichier Sparsefile de 20 To (biglun) ... maintenant, ce fichier étant clairsemé, il ne prendra que 10 Mo sur le lecteur.
Comment faire un fichier fragmenté:
Sparse File - comment le fabriquer - le détecter - tout - Les fichiers fragmentés ressemblent à des fichiers "minces" (si vous deviez l’utiliser pour un lun). "épais" luns serait une histoire différente.
* retour au sujet:
tarer le biglun fera passer tous les 10 Mo de goudron avec tous les ~ 20tb de zéros de plus en plus répandus à travers le lun ... cela prendra un certain temps, je présume, et le fichier tar sera assez volumineux. De plus, en l'extrayant, je n'ai jamais extrait le fichier tar d'un fichier fragmenté, mais ce n'est peut-être pas joli; Je peux me tromper ici.
bsdtarring the biglun ne fera que traiter les 10 Mo de données et créer de petites métadonnées pour les ~ 20 To de zéros.
Avantage? Bien beaucoup d'entre eux; Je viens d'écrire certains ci-dessus.
C'est similaire à rsync vs cp
Personnellement, j'aime bien imaginer des fichiers clairsemés comme des minces luns et des fichiers réguliers comme des luns épais ...
Le sujet suivant est BTRFS thin vs thick luns:
Avec des systèmes de fichiers tels que BTRFS , les LUN FINS sont des fichiers fragmentés (faites-le avec troncature, comme dans le document wiki).
Astuce : sauvegarde avec bsdtar , copie avec cp
Les luns épais sont des fichiers normaux avec l'attribut + C (+ C pour qu'il n'en soit pas une VAC, copie en écriture, pour que toutes les écritures restent essentiellement à l'endroit où elles sont allouées, et aucune nouvelle écriture ne se produit pour ce fichier lorsqu'il y a des écrasements. ou supprime - recherche COW et BTRFS ). Au lieu de rendre le fichier tronqué, faites-le avec "fallocate -l"
Astuce : sauvegarde avec bsdtar ou tar, copie avec rsync ou cp
Le sujet suivant est EXT mince vs épais luns:
luns minces qui sont rares
Astuce : sauvegarde avec bsdtar , copie avec cp
Les luns épais sont des fichiers normaux avec l'attribut + C (+ C pour qu'il ne soit plus une vache, une copie en écriture, pour que toutes les écritures restent essentiellement à l'endroit où elles sont allouées, et aucune nouvelle écriture ne se produit pour ce fichier lorsqu'il y a des remplacements. ou supprime - recherche COW et BTRFS ). Au lieu de rendre le fichier tronqué, faites-le avec "fallocate -l"
Astuce : sauvegarde avec bsdtar ou tar, copie avec rsync ou cp
Quel est un fichier épais vs mince
ARTICLE VMWARE ICI décrit paresseux ou avide zéro avec des fichiers / fichiers épais: https://communities.vmware.com/message/2199576
pointe
Souvenez-vous que "Thin and Thin" ne s'applique pas uniquement aux Luns, il peut également concerner des fichiers, des systèmes de fichiers zfs (partages / volumes / Luns) et, j'en suis sûr, d'autres choses (il suffit de regarder zfs).
la source
A partir de la description du paquet Ubuntu ( http://packages.ubuntu.com/de/lucid/bsdtar )
"Le programme bsdtar présente un certain nombre d'avantages par rapport aux implémentations précédentes de tar:
la source
Ce qui suit est basé sur la lecture, pas sur l'expérience - je viens juste de commencer avec Freebsd, donc je n'ai presque aucune expérience réelle avec ce logiciel (je viens principalement de Linux). Je m'excuse (et demande humblement une correction) si j'ai oublié quelque chose d'important et ce que je dis ici, c'est de la foutaise ...
D'après ma lecture des pages de manuel (la plus récente, celle mentionnée ci-dessus http://www.freebsd.org/cgi/man.cgi?query=tar&sektion=1 ), le fichier tar de Freebsd ne contient pas (-d, --diff , --compare) Ce n'est pas surprenant, car les auteurs de Freebsd dump / restore ne semblent pas avoir fourni quoi que ce soit du genre.
Je ne sais pas avec certitude si Gnu tar intégrera toutes les métadonnées UFS comme on dit que Freebsd tar, et c’est un problème important. Mais à mon goût, je ne peux JAMAIS considérer qu'un cliché soit terminé tant que je n'ai pas stocké une somme MD5 du fichier de sortie, ET ALORS comparé le fichier de cliché aux données que je viens de vider supposément. Divers problèmes peuvent amener les données sauvegardées à différer de ce qui se trouve sur le disque. (Pas simplement les modifications de fichiers, mais les erreurs de disque, les erreurs de mémoire, les erreurs de machine, etc., ce qui m'est réellement arrivé.)
À mon avis, cela fait de Gnu tar la seule option que j'ai trouvée jusqu'à présent pour créer de vraies sauvegardes sur un système Freebsd stock.
J'aimerais beaucoup apprendre autrement, FWIW. Je préférerais utiliser les utilitaires natifs au moins pour le clonage de partition et les sauvegardes de restauration. Mais si on ne peut pas vérifier l'exactitude d'un vidage, je ne vois pas l'intérêt de se donner la peine d'en créer un.
la source
bsdtar peut lire et utiliser les membres tar d’autres archives en utilisant la
@archive
syntaxeGNU tar a l'
--delete
option - bien que récemment, j'ai constaté que cela pouvait corrompre l'archive.la source