J'utilise tar
pour sauvegarder un serveur linux sur bande. J'utilise le logiciel -j
pour compresser le fichier avec bzip2
Cependant, je ne vois aucun moyen d'ajuster les options de taille de bloc pour bzip2 à partir de tar. La taille de bloc par défaut est de 900 000 octets, ce qui donne la meilleure compression mais la plus lente. Le taux de compression ne me préoccupe pas vraiment, je cherche donc à faire fonctionner bzip2 plus rapidement avec une taille de bloc plus petite.
Réponses
Trop de publicités?export BZIP=--fast
tar cjf foo.tar.bz2 foo
Ou encore, vous pouvez envoyer la sortie de l'application tar
à bzip2
.
Cependant, il convient de noter la page de manuel de bzip2 :
-1 (or --fast) to -9 (or --best)
Set the block size to 100 k, 200 k .. 900 k when compressing.
Has no effect when decompressing. See MEMORY MANAGEMENT below.
The --fast and --best aliases are primarily for GNU gzip compat-
ibility. In particular, --fast doesn't make things signifi-
cantly faster. And --best merely selects the default behaviour.
bzip2
taille des blocs
bzip2
dispose de quelques options de taille de bloc. Extrait de la page de manuel bzip2(1)
:
-1 (or --fast) to -9 (or --best)
Set the block size to 100 k, 200 k .. 900 k when compressing.
Has no effect when decompressing. See MEMORY MANAGEMENT below.
The --fast and --best aliases are primarily for GNU gzip
compatibility. In particular, --fast doesn't make things
significantly faster. And --best merely selects the default
behaviour.
Si vous souhaitez une compression plus rapide avec moins d'importance pour le taux de compression, l'utilisation de bzip2
vous semblez vouloir la -1
(ou --fast
).
Paramètres bzip2
taille du bloc lors de l'utilisation de tar
Vous pouvez définir bzip2
taille du bloc lors de l'utilisation de tar
de plusieurs manières.
La voie UNlX
Ma méthode préférée, la méthode UNlX, consiste à utiliser chaque outil indépendamment et à les combiner au moyen de tuyaux.
$ tar --create [FILE...] | bzip2 -1 > [ARCHIVE].tar.bz2
Vous pouvez lire cela comme "créer .tar avec tar
-> bzip avec bzip2
-> l'écrire à [ARCHIVE].tar.bz2
".
Variable d'environnement
Il est également possible de définir bzip2
par le biais de la variable d'environnement BZIP2
. A partir de la page du manuel bzip2(1)
:
bzip2 will read arguments from the environment variables BZIP2 and BZIP,
in that order, and will process them before any arguments read from the
command line. This gives a convenient way to supply default arguments.
Pour l'utiliser avec tar
vous pouvez par exemple faire :
$ BZIP2=-1 tar --create --bzip2 --file [ARCHIVE].tar.bz2 [FILE...]
Des alternatives plus rapides
bzip2
utilise un algorithme de compression lent. Si vous êtes préoccupé par la vitesse, vous pouvez étudier d'autres algorithmes, tels que ceux utilisés par gzip
o lzop
. Voici un article intéressant qui compare les outils de compression : https://aliver.wordpress.com/2010/06/22/huge-unix-file-compresser-shootout-with-tons-of-datagraphs/