Siempre he usado GNU tar
. Sin embargo, todas las distribuciones de GNU / Linux que he visto se envían bsdtar
en sus repositorios. Incluso lo he visto instalado por defecto en algunos, IIRC. Sé con certeza que Arch GNU / Linux lo requiere como parte de basedevel
(tal vez base
, pero no estoy seguro), como lo he visto en PKGBUILD.
¿Por qué querrías usar en bsdtar
lugar de GNU tar
? ¿Cuáles son las ventajas?
Tenga en cuenta que soy la persona que preguntó ¿Cuáles son las principales diferencias entre BSD y GNU / Linux userland? .
Respuestas:
Ubuntu
bsdtar
es en realidad la implementación de tar incluidalibarchive
; y eso debería diferenciarse de lo clásicobsdtar
. Algunas variantes de BSD utilizanlibarchive
para su implementación de tar, por ejemplo, FreeBSD.GNUtar
admite las otras variantes de alquitrán y la detección de compresión automática.A medida que la visualización pegaba la propaganda de Ubuntu, hay algunas cosas allí que son específicas para
libarchive
:libarchive
es, por definición, una biblioteca, y diferente de la clásicabsdtar
yGNUtar
de esa manera.libarchive
no puede leer algunas variaciones oscuras antiguas de GNU tar, lo más notable fue la codificación de algunos encabezados en base64, por lo que el archivo tar sería ASCII limpio de 7 bits (este fue el caso para 1.13.6-1.13.11 y cambió en 1.13.12 , ese código solo estuvo oficialmente en alquitrán durante 2 semanas)libarchive
'sbsdtar
leerá archivos que no sean tar (por ejemplo, zip, iso9660, cpio), pero bsdtar clásico no lo hará.Ahora que nos hemos salido
libarchive
del camino, todo se reduce a lo que se admite en la clásicabsdtar
.Puede ver las páginas de manual usted mismo aquí:
En su pregunta original, preguntó cuáles son las ventajas de la clásica
bsdtar
, y no estoy seguro de que realmente existan. El único momento en el que realmente importa es si está intentando escribir scripts de shell que necesitan funcionar en todos los sistemas; debe asegurarse de que lo que pasatar
sea realmente válido en todas las variantes.GNUtar
,libarchive
'Sbsdtar
, clásicosbsdtar
,star
yBusyBox
' star
son sin duda las implementaciones de alquitrán que se encontrará con la mayor parte del tiempo, pero estoy seguro de que hay otros por ahí (QNX temprana, por ejemplo).libarchive
/GNUtar
/star
son los más completos, pero en muchos aspectos se han desviado de los estándares originales (posiblemente para mejor).fuente
BSDTAR vs TAR y mucho más
¡Aquí hay un beneficio!
Voy a entrar en 5 temas aquí (y saldré del tema, pero también cubrirá lo que quieras):
bsdtar maneja los archivos dispersos mejor que el alquitrán regular
* ejemplo: imagine un archivo disperso de 20 tb (llamado biglun) con 10 megas de datos en todo el archivo disperso de 20 tb (biglun) ... ahora, dado que es un archivo disperso, solo ocupará 10 megas en la unidad.
Cómo hacer un archivo disperso:
Archivo disperso - cómo hacerlo - detectarlo - todo Los archivos dispersos son como luns "delgadas" (si fuera a usarlo para un lun). las monjas "gruesas" serían una historia diferente.
* volver al tema:
tarar el biglun hará que el alquitrán atraviese los 10 megas junto con todos los ~ 20tb de ceros peores repartidos por el lun ... supongo que llevará un tiempo, y el archivo tar será bastante grande. Además, extrayéndolo, nunca he hecho un extracto de un archivo tar de un archivo disperso, pero puede que no sea bonito; Podría estar equivocado aquí.
bsdtarring el biglun solo procesará los 10 megas de datos y creará pequeños metadatos para ~ 20tb de ceros.
¿Beneficio? Bueno, muchos de ellos; Acabo de escribir algunos arriba.
Es similar a rsync vs cp
Personalmente, me gusta imaginar archivos dispersos como luns delgadas y archivos regulares como luns gruesas ...
El siguiente tema es BTRFS delgadas contra gruesas:
Con sistemas de archivos como BTRFS , las luns delgadas son archivos dispersos ( hazlo con truncamiento , como en el documento wiki).
consejo: copia de seguridad con bsdtar , copia con cp
las luns gruesas son archivos normales con el atributo + C (+ C para que no sea COW, copie al escribir, de modo que todas las escrituras permanezcan esencialmente donde está asignado, y no ocurran nuevas escrituras para ese archivo cuando hay sobrescrituras o elimina - investigación COW y BTRFS ). En lugar de truncar el archivo, hágalo con "Fallocate -l"
consejo: copia de seguridad con bsdtar o tar, copia con rsync o cp
El siguiente tema es EXT.
chicas delgadas que son escasas
consejo: copia de seguridad con bsdtar , copia con cp
las luns gruesas son archivos normales con el atributo + C (+ C para que no sea COW, copie al escribir, de modo que todas las escrituras permanezcan esencialmente donde está asignado, y no ocurran nuevas escrituras para ese archivo cuando hay sobrescrituras o elimina - investigación COW y BTRFS ). En lugar de truncar el archivo, hágalo con "Fallocate -l"
consejo: copia de seguridad con bsdtar o tar, copia con rsync o cp
¿Cuál es un archivo grueso vs delgado
El ARTÍCULO DE VMWARE AQUÍ describe el vago vs cero ansioso con archivos / luns gruesos: https://communities.vmware.com/message/2199576
propina
recuerde que grueso y delgado no solo se aplica a las luns, también puede estar en archivos, sistemas de archivos zfs (recursos compartidos / volúmenes / luns), y estoy seguro de otras cosas (solo mire zfs).
fuente
De la descripción del paquete de Ubuntu ( http://packages.ubuntu.com/de/lucid/bsdtar )
"El programa bsdtar tiene una serie de ventajas sobre implementaciones tar anteriores:
fuente
Lo siguiente se basa en la lectura, no en la experiencia: recién estoy comenzando con Freebsd, así que casi no tengo experiencia real con él (vengo principalmente de Linux). Pido disculpas (y solicito humildemente la corrección) si me he perdido algo importante y lo que digo aquí es basura ...
De mi lectura de las páginas del manual (más recientemente la referenciada anteriormente http://www.freebsd.org/cgi/man.cgi?query=tar&sektion=1 ) el tar de Freebsd carece de (-d, --diff , --compare) capacidad. Esto no es sorprendente, ya que los autores de Freebsd dump / restore tampoco parecen haber proporcionado algo como esto.
No sé con certeza si el tar de Gnu incorporará todos los metadatos de UFS como se dice que hace el tar de Freebsd, y este es un tema importante. Pero para mi gusto, NUNCA puedo considerar que se complete un volcado hasta que haya almacenado una suma MD5 del archivo de salida, Y ENTONCES comparé el archivo de volcado con los datos que supuestamente volqué. Varios problemas pueden llevar a que los datos volcados sean diferentes de los que están en el disco. (No solo los cambios de archivo, sino también los errores de disco, errores de memoria, fallas de la máquina, etc.) Todo lo cual realmente me ha sucedido.
En mi opinión, esto hace que Gnu tar sea la única opción que he encontrado hasta ahora para crear copias de seguridad verdaderas en un sistema Freebsd estándar.
Me encantaría aprender lo contrario, FWIW. Preferiría usar las utilidades nativas al menos para la clonación de particiones y las copias de seguridad de recuperación de hardware. Pero si uno no puede verificar la exactitud de un volcado, no veo el punto de molestarme en crear uno.
fuente
bsdtar puede leer y tar miembros procedentes de otros archivos utilizando la
@archive
sintaxisGNU tar tiene la
--delete
opción, aunque recientemente descubrí que puede corromper el archivo.fuente