Linux shell compression archives

Linux shell compression archives - Codes et scripts - Linux et OS Alternatifs

Marsh Posté le 31-03-2014 à 11:45:54    

Bonjour,
 
Je suis sur Linux Kubuntu 12.04.4 x64.
Au sujet de la compression d'archive, je me pause plein de question.
 
1/ Je voudrais savoir si il est possible d'afficher le taux de compression d'un fichier ?
2/ Quelle différence de compression  y a t'il entre ces deux commandes ?

Code :
  1. sudo dd if=/dev/sdx | gzip -v6 | pv | dd of=/chemin/nom_archive.gz

et

Code :
  1. sudo dd if=/dev/sdx | pv | gzip -c > /chemin/nom_archive.gz


3/ Es-ce du tar ces commandes de compression :

Code :
  1. sudo dd if=$source | gzip -c > /chemin/nom_archive.tar.gz
  2. sudo dd if=/dev/sdx | lzma | pv | > /chemin/nom_archive..tar.lzma
  3. sudo dd if=/dev/sdx | bzip2 | pv > /chemin/nom_archive.taz.bz2
  4. sudo dd if=/dev/sdx | compress | pv > /chemin/nom_archive.tar.lzw


ou es-ce du gz, lzma, bz2, lzw et nom du tar?
 
4/ Quelle est la compression qui compresse au maximum les données afin de réduire l'archive au maximum en espace disque ?
 
Merci.

Reply

Marsh Posté le 31-03-2014 à 11:45:54   

Reply

Marsh Posté le 31-03-2014 à 12:31:11    

3/ tar --> Tape ARchive. C’est juste pour rassembler des fichiers (éventuellement dans une arbo) ensemble.
4/ xz


---------------
Décentralisons Internet-Bépo-Troll Bingo - "Pour adoucir le mélange, pressez trois quartiers d’orange !"
Reply

Marsh Posté le 31-03-2014 à 22:36:54    

Bonsoir,
 
Pour le 3, je n'ai pas très bien compris  

Code :
  1. laurent@PC-Bureau-laurent:~$ ARchive
  2. ARchive : commande introuvable
  3. laurent@PC-Bureau-laurent:~$


 
Pour le 4, comment l'utiliser avec partition ?

Code :
  1. sudo dd if=/dev/sde | tar xz > /chemin/nom_archive.xz


 
J'ai vérifié il est bien installé :  

Code :
  1. laurent@PC-Bureau-laurent:~$ dpkg -l | grep xz-utils
  2. ii  xz-utils                               5.1.1alpha+20110809-3                               XZ-format compression utilities
  3. laurent@PC-Bureau-laurent:~$


 
 
Merci.
 

Reply

Marsh Posté le 31-03-2014 à 22:50:49    

xunil2003 a écrit :

Bonsoir,
 
Pour le 3, je n'ai pas très bien compris  

Code :
  1. laurent@PC-Bureau-laurent:~$ ARchive
  2. ARchive : commande introuvable
  3. laurent@PC-Bureau-laurent:~$




Au temps pour moi. Je n’ai pas écrit « Tapes ARchive » mais « Tape ARchive ». TAR en est le raccourci.
C’était juste pour te signifier que tar permet de créer des archives, pas de les compresser.
Bref.


---------------
Décentralisons Internet-Bépo-Troll Bingo - "Pour adoucir le mélange, pressez trois quartiers d’orange !"
Reply

Marsh Posté le 01-04-2014 à 00:47:18    

Fork Bomb a écrit :


Au temps pour moi. Je n’ai pas écrit « Tapes ARchive » mais « Tape ARchive ». TAR en est le raccourci.
C’était juste pour te signifier que tar permet de créer des archives, pas de les compresser.
Bref.


 
man tar :
 

Citation :


     -z, --gzip, --gunzip --ungzip
 
     -Z, --compress, --uncompress


 
[:tammuz]


---------------
Que va-t-il se passer cette gelgamar ? vous le découvrirez janamont à 20h
Reply

Marsh Posté le 01-04-2014 à 11:30:53    

Misssardonik a écrit :


 
man tar :
 

Citation :


     -z, --gzip, --gunzip --ungzip
 
     -Z, --compress, --uncompress


 
[:tammuz]


 
 
Il parle du comportement "initial/par défaut/premier" de tar ;) .
 
le "-z" implique (en interne) l'utilisation de gzip.

Reply

Marsh Posté le 01-04-2014 à 18:03:48    

Bonjour,
 
Si tar ne compresse pas, pourquoi les nommer avec l'extension tar.xx, genre tar.gz, tar.lzma, taz.bz2, tar.lzw, tar.xz ?
 
J'ai fait un test sur une carte mémoire sd à sauvegarder, j'y ai comparé plusieurs tests de compression :
Carte mémoire sd :
 
Extrait de : df -h

Code :
  1. /dev/sde2           16G    9,3G  5,2G  65% /media/dp-rootfs


 
Extrait de : fdisk -l

Code :
  1. Disk /dev/sde: 16.5 GB, 16508780544 bytes
  2. 64 têtes, 32 secteurs/piste, 15744 cylindres, total 32243712 secteurs
  3. Unités = secteurs de 1 * 512 = 512 octets
  4. Taille de secteur (logique / physique) : 512 octets / 512 octets
  5. taille d'E/S (minimale / optimale) : 512 octets / 512 octets
  6. Identifiant de disque : 0x76c80fe9
  7. Périphérique Amorçage  Début         Fin      Blocs    Id. Système
  8. /dev/sde1              32      104447       52208    6  FAT16
  9. /dev/sde2          104448    32243711    16069632   83  Linux
  10. laurent@PC-Bureau-laurent:~$


 
Taille des sauvegarde compressé :

Code :
  1. ls -alh $HOME/sauvegarde/test-sauvegarde-carte-sd/
  2. -rw-rw-r-- 1 laurent laurent 8,0G avril  1 03:24 Sauvegarde-serveur-dreamplug-01-04-2014_02h09.tar.xz
  3. -rw-rw-r-- 1 laurent laurent 8,1G avril  1 14:06 Sauvegarde-serveur-dreamplug-01-04-2014_12h15.tar.lzip
  4. -rw-rw-r-- 1 laurent laurent 8,8G mars  28 01:48 Sauvegarde-serveur-dreamplug-28-03-2014_01h33.tar.gz
  5. -rw-rw-r-- 1 laurent laurent 8,1G mars  29 15:09 Sauvegarde-serveur-dreamplug-29-03-2014_13h59.lzma
  6. -rw-rw-r-- 1 laurent laurent 8,6G mars  30 01:56 Sauvegarde-serveur-dreamplug-30-03-2014_01h22.tar.bz2
  7. -rw-rw-r-- 1 laurent laurent  14G mars  30 03:17 Sauvegarde-serveur-dreamplug-30-03-2014_03h04.tar.lzw


Les seules qui compressent les données au maximum son (du plus puissant au plus faible) :

Code :
  1. 1 - tar.xz
  2. - tar.lzip
  3. - tar.lzma
  4. - tar.bz2
  5. - tar.gz
  6. - tar.lzw

Lzip Vous constaterez  quelzip compresse au même niveau que lzma.
 
Pour le 4, j'ai trouvé :

Code :
  1. sudo dd if=/dev/sde | xz | pv > /chemin/nom_archive.tar.xz


 
Dans les options de tar, il est indiqué ceci :
Extrait de : tar --help

Code :
  1. Options de compression :
  2.   -a, --auto-compress        Utiliser le suffixe de l'archive pour déterminer
  3.                              le programme de compression
  4.   -I, --use-compress-program=PROG
  5.                              Filtrer à travers le PROG (doit accepter l'option
  6.                              « -d »)
  7.   -j, --bzip2                Filtrer l'archive à travers bzip2
  8.   -J, --xz                   Filtrer l'archive à travers xz
  9.       --lzip                 Filtrer l'archive à travers lzip
  10.       --lzma                 Filtrer l'archive à travers xz
  11.       --lzop
  12.       --no-auto-compress     Ne pas utiliser l'extension du fichier d'archive
  13.                              pour déterminer le programme de compression
  14.   -z, --gzip, --gunzip, --ungzip   Filtrer l'archive à travers gzip
  15.   -Z, --compress, --uncompress   Filtrer l'archive à travers compress


Après je ne sais pas si il est possible d'augmenter encore plus le taux de compression même si ça dure plus longtemps ?
 
 
Je ne comprends toujours pas ce que vous voulez dire par :

Citation :

« Tapes ARchive » mais « Tape ARchive ». TAR


Code :
  1. laurent@PC-Bureau-laurent:~$ test-Sauvegarde.gz >> .tar
  2. test-Sauvegarde.gz : commande introuvable
  3. laurent@PC-Bureau-laurent:~$


 
Merci.

Reply

Marsh Posté le 01-04-2014 à 18:49:46    

Un TAR est une archive. Derrière, l'archive on peut la compresser.
.tar.gz c'est un tar qui est compressé.
La commande tar dispose des options nécessaires pour compresser les tar en gz, bz2, etc...

 

Faut faire la distinction entre format tar et commande tar. La dans tout tes exemples tu compresses la sortie de dd, dans certains propos ici on parle de la commande tar


Message édité par o'gure le 01-04-2014 à 18:55:55

---------------
Relax. Take a deep breath !
Reply

Marsh Posté le 01-04-2014 à 18:51:21    

xunil2003 a écrit :


Je ne comprends toujours pas ce que vous voulez dire par :

Citation :

« Tapes ARchive » mais « Tape ARchive ». TAR


Code :
  1. laurent@PC-Bureau-laurent:~$ test-Sauvegarde.gz >> .tar
  2. test-Sauvegarde.gz : commande introuvable
  3. laurent@PC-Bureau-laurent:~$


 
Merci.


TAR est l'acronyme pour "Tape Archive", c'est tout.
Pour le reste, je ne sais pas ce que tu essayes de faire. Exécuter un fichier .gz et le rediriger dans un fichier nommer .tar ???


---------------
Relax. Take a deep breath !
Reply

Marsh Posté le 01-04-2014 à 18:53:19    

Et pour terminer, certains algo sont plus ou moins performant que d'autre en fonction du contenu du fichier.
La compression ce n'est pas magique et tout dépend du contenu. Les résultats entre deux algo peuvent varier si tu changes le format/contenu du fichier à compresser


Message édité par o'gure le 01-04-2014 à 18:54:20

---------------
Relax. Take a deep breath !
Reply

Marsh Posté le 01-04-2014 à 18:53:19   

Reply

Marsh Posté le 01-04-2014 à 19:36:05    

Bonsoir,
 
Je cherche à compresser au maximum mes données d'une carte sd de mon raspberry.
Il est vrai que je ne suis pas un dieu de la sauvegarde compressé !
Ok Donc vous dites, qu'il faut distinguées dd de tar .
Mais il est impossible de faire une sauvegarde directement avec tar ?

Code :
  1. laurent@PC-Bureau-laurent:~$ tar -Jcvf $HOME/sauvegarde/test-sauvegarde-carte-sd/Sauvegarde-raspberry-test-01-04-2014_19h27.xz  /dev/sde
  2. tar: Suppression de « / » au début des noms des membres
  3. /dev/sde
  4. laurent@PC-Bureau-laurent:~$


Alors comment vous faites directement avec tar sans passer par dd ?
 
Merci.

Reply

Marsh Posté le 01-04-2014 à 19:48:39    

Généralement je lis entièrement les manpages des commandes que j'utilise et j'essaye de comprendre comment ils fonctionnent pour savoir comment les appliquer.

 

http://linux.die.net/man/1/tar
http://linux.die.net/man/1/dd
Tar: GNU 'tar' saves many files together into a single tape or disk archive, and can restore individual files from the archive.
dd: Copy a file, converting and formatting according to the operands.

 


Tar opère au niveau arborescence des fichiers. Plusieurs fichiers+répertoire => dans un seul et unique fichier tar. dd opère au niveau d'un seul fichier, il recopie bit à bit un fichier
/dev/sde représente le "device SCSI" pour ta carte mémoire. C'est un fichier (tout est fichier sous unix).

 

J'utilise dd que dans des besoins spécifiques. Pour faire une archive de fichier, quelle soit sur une carte sd ou autre part, j'utlise tar avec lesrépertoires/fichiers. Pour ça faut monter ta carte.
Là, utiliser dd pour faire une archive, c'est bourrin, pas user friendly et c'est le meilleur moyen pour foirer ce que tu veux faire si tu ne comprends pas comment ça fonctionne réellement. dd, c'est du bas niveau.

 

après tu fais ce que tu veux


Message édité par o'gure le 01-04-2014 à 19:50:54

---------------
Relax. Take a deep breath !
Reply

Marsh Posté le 01-04-2014 à 22:47:01    

Bonsoir
 
Vous voulez dire par arborescence des fichiers. OK.

Code :
  1. sudo tar Jcvf $HOME/sauvegarde/test-sauvegarde-carte-sd/Sauvegarde-raspberry-test-01-04-2014_20h48.tar.xz  /media/dp-rootfs/
  2. tar: Suppression de « / » au début des noms des membres
  3. /media/dp-rootfs/
  4. /media/dp-rootfs/var/
  5. /media/dp-rootfs/var/www/
  6. etc..


et je ne comprends pas pourquoi tar me met ce message :

Code :
  1. tar: Suppression de « / » au début des noms des membres


 
Mais j'ai plusieurs partitions sur la sd.

Code :
  1. /dev/sde1              32      104447       52208    6  FAT16   /media/dp-kern/
  2. /dev/sde2          104448    32243711    16069632   83  Linux   /media/dp-rootfs/


 
Concrètement, dd sauvegarde toutes la carte mémoire sd avec les l'espace vide, tendis que tar lui sauvegarde uniquement les fichiers sur la partition. du coup la sauvegarde est moins importante en espace disque que dd.
 
Taille des sauvegardes de la carte mémoire sd :

Code :
  1. -rw-r--r-- 1 root    root    5,1G avril  1 23:44 Sauvegarde-raspberry-test-dev_sde2-01-04-2014_20h48.tar.xz
  2. -rw-r--r-- 1 root    root    5,0M avril  1 23:55 Sauvegarde-raspberry-test-dev_sde1-01-04-2014_23h55.tar.xz


 
Merci.

Message cité 3 fois
Message édité par xunil2003 le 02-04-2014 à 00:00:19
Reply

Marsh Posté le 02-04-2014 à 08:17:56    

xunil2003 a écrit :

Bonsoir
 
Vous voulez dire par arborescence des fichiers. OK.

Code :
  1. sudo tar Jcvf $HOME/sauvegarde/test-sauvegarde-carte-sd/Sauvegarde-raspberry-test-01-04-2014_20h48.tar.xz  /media/dp-rootfs/
  2. tar: Suppression de « / » au début des noms des membres
  3. /media/dp-rootfs/
  4. /media/dp-rootfs/var/
  5. /media/dp-rootfs/var/www/
  6. etc..


et je ne comprends pas pourquoi tar me met ce message :

Code :
  1. tar: Suppression de « / » au début des noms des membres




Parce que tu utilises un chemin absolu : /media/dp-rootfs/. C'est pour la décompression derrière
cf. le manpage si tu ne veux pas qu'il fasse ça

-P, --absolute-names
    don't strip leading '/'s from file names


---------------
Relax. Take a deep breath !
Reply

Marsh Posté le 02-04-2014 à 08:19:36    

xunil2003 a écrit :


 
Mais j'ai plusieurs partitions sur la sd.

Code :
  1. /dev/sde1              32      104447       52208    6  FAT16   /media/dp-kern/
  2. /dev/sde2          104448    32243711    16069632   83  Linux   /media/dp-rootfs/




Tu choisis la méthode qui te semble la plus appropriée à ce que tu veux faire [:spamafote]
 


---------------
Relax. Take a deep breath !
Reply

Marsh Posté le 02-04-2014 à 13:02:21    

Bonjour,
 
Pour l'option tar :

Code :
  1. -P, --absolute-names
  2.     don't strip leading '/'s from file names

 
Je ne vois pas comment l'utiliser.
J'ai fait une recherche sur le net par avoir un exemple d'utilisation sur cette option, j'ai rien trouvé.
 

Code :
  1. laurent@PC-Bureau-laurent:~$ sudo tar cvf /home/laurent/sauvegarde/DreamPlug/Sauvegarde-serveur-dreamplug-dp-kern-01-04-2014_12h24.tar -P /media/dp-kern/
  2. [sudo] password for laurent:
  3. tar: /media/dp-kern : stat impossible: Aucun fichier ou dossier de ce type
  4. tar: Arrêt avec code d'échec à cause des erreurs précédentes
  5. laurent@PC-Bureau-laurent:~$ sudo tar -P cvf /home/laurent/sauvegarde/DreamPlug/Sauvegarde-serveur-dreamplug-dp-kern-01-04-2014_12h24.tar  /media/dp-kern/
  6. tar: Vous devez choisir une option parmi « -Acdtrux » ou « --test-label »
  7. Pour en savoir davantage, faites : « tar --help » ou « tar --usage ».
  8. laurent@PC-Bureau-laurent:~$


tar --usage m'en dite pas plus.
 

Code :
  1. Tu choisis la méthode qui te semble la plus appropriée à ce que tu veux faire


Je pense que le mieux est de faire un script bash pour effectuer la sauvegarde des deux partitions. Cela sera plus adapter à mes partitions, afin des sauvegarder les deux a la fois.
Depuis une live cd de Ubuntu par exemple, ou depuis un pc en insèrent la carte sd dans un lecteur de carte mémoire sd.
 
Merci.


Message édité par xunil2003 le 02-04-2014 à 13:10:21
Reply

Marsh Posté le 02-04-2014 à 13:19:17    

tar -Pcvf
Après vérifie directement le manpage que tu as sur ta version


Message édité par o'gure le 02-04-2014 à 13:19:47

---------------
Relax. Take a deep breath !
Reply

Marsh Posté le 02-04-2014 à 16:26:35    

Bonjour,
 
Le format tar permet en deux mots de créer/Désarchiver/Ajouter/Supprimer/Mettre à jour/Lister une archive tar, mais peut-on faire la même chose avec un format de compression ?
Comparer à tar.xx que vaut les formats Zip, Rar et ar ?  
Il doit y a une raison à tout c'est format de compression, pour une utilisation particulière, il non pas était inventé pour rien  (tar.xz, tar.gz, tar.lzip, tar.bz2, tar.gz, tar.lzop, tar.z, etc...) ?
Y a t'il au format spécifique pour une sauvegarde en réseau ou peut-on utiliser n'importe quel format de compression ?
 
Je me demande quel est le principe de sauvegarde d'un serveur sachent qu'un serveur reste en marche 24/24 ?  
Pour moi le but est de sauvegarder le serveur et les postes avec une taux de compression maximum même si ça dure longtemps.
Tous sont sur Linux sauf un poste sur windows 7.
 
Merci.

Reply

Marsh Posté le 02-04-2014 à 18:47:41    

xunil2003 a écrit :

Bonjour,

 

Le format tar permet en deux mots de créer/Désarchiver/Ajouter/Supprimer/Mettre à jour/Lister une archive tar, mais peut-on faire la même chose avec un format de compression ?
Comparer à tar.xx que vaut les formats Zip, Rar et ar ?
Il doit y a une raison à tout c'est format de compression, pour une utilisation particulière, il non pas était inventé pour rien  (tar.xz, tar.gz, tar.lzip, tar.bz2, tar.gz, tar.lzop, tar.z, etc...) ?
Y a t'il au format spécifique pour une sauvegarde en réseau ou peut-on utiliser n'importe quel format de compression ?

 

tu utilises celui que tu veux.
tar c'est "juste de la concaténation de fichier avec en plus quelques métadonénes. Le fichier résultat, tu le compresses avec ce que tu veux
Au passage, le format est décrit brièvement ici : http://en.wikipedia.org/wiki/Tar_%28computing%29 et complètement là : http://www.gnu.org/software/tar/ma [...] ndard.html
cela répond à tes premières questions pour savoir si ton dd compressé est du tar ou non.

 

La raison de tout ces formats ça ressemble à cette bande dessinée :
http://imgs.xkcd.com/comics/standards.png
C'est comme ça pour tout [:spamafote]

 

Un premier format, puis un second utilisant un algo de compression sensiblement meilleur/plus rapide mais moins bon, etc... Après tu utilises celui qui te correspond le mieux : portabilité, rapidité, taux de compression. Chacun a des besoins différents. Toi à priori, tu veux compresser fortement quelques soit le temps pris. Dans ce cas soit tu cherches des benchmarks, soit tu le fais avec tes propres jeux de données.


Message édité par o'gure le 02-04-2014 à 18:55:43

---------------
Relax. Take a deep breath !
Reply

Marsh Posté le 04-04-2014 à 23:17:44    

Salut,
 

xunil2003 a écrit :

Concrètement, dd sauvegarde toutes la carte mémoire sd avec les l'espace vide, tendis que tar lui sauvegarde uniquement les fichiers sur la partition. du coup la sauvegarde est moins importante en espace disque que dd.


 
Il existe un petit truc afin de réduire la taille d'un fichier créé avec dd et compressé avec gzip. Il suffit de remplir un fichier avec des zéros afin de remplacer les blocs non-utilisés par des octets nul, puis de supprimer ce fichier.  
 
Mise en œuvre depuis le système sur la carte :
 

$ sudo dd if=/dev/zero of=/fichier0bits bs=20M
$ sudo rm /fichier0bits


 
Il ne te reste plus qu'à faire l'image de ta carte :
 

$ sudo dd if=/dev/sdx | gzip -9 > /chemin/nom_archive.gz


 ;)  
 
Astuce tirée de la doc de G4U (http://guidespratiques.traduc.org/lecture/g4u.html)


---------------
$ man woman
Reply

Marsh Posté le 05-04-2014 à 02:39:53    

Bonjour zipe31,
 
Je n'ai pas trop bien compris, si je tape ceci

Code :
  1. $ sudo dd if=/dev/zero of=/fichier0bits bs=20M
  2. $ sudo rm /fichier0bits

Comment il sais que c'est ma carde sd ?
Il va le faire sur le disque dur au lieu de la faire sur la carte sd qui est connecté sur le lecteur USB ?
Ou faut-il y taper directement sur le serveur une fois la carte sd insérer dans le serveur (booter dessus) ?
Puis mettre la carte sd dans le lecteur USB pour effectuer la sauvegarde avec gzip depuis un Pc.
 
Si oui, y a t'il un moyen d'y faire directement depuis un pc avec le lecteur de carte mémoire usb ?

Code :
  1. $ sudo dd if=/dev/zero of=/fichier0bits bs=20M

 
 
Merci.

Message cité 1 fois
Message édité par xunil2003 le 05-04-2014 à 02:40:24
Reply

Marsh Posté le 05-04-2014 à 08:26:51    

Re-
 

xunil2003 a écrit :

Ou faut-il y taper directement sur le serveur une fois la carte sd insérer dans le serveur (booter dessus) ?


Il faut effectivement taper ces commandes depuis le serveur en fonction (raspberrypi).
 

xunil2003 a écrit :

Puis mettre la carte sd dans le lecteur USB pour effectuer la sauvegarde avec gzip depuis un Pc.


Oui, c'est cela.
 

xunil2003 a écrit :

Si oui, y a t'il un moyen d'y faire directement depuis un pc avec le lecteur de carte mémoire usb ?

Code :
  1. $ sudo dd if=/dev/zero of=/fichier0bits bs=20M



Sûrement qu'en passant par un chroot ce doit être possible, il faudrait le tester…


---------------
$ man woman
Reply

Marsh Posté le 05-04-2014 à 09:14:25    

pas besoin de chroot, tu montes ta carte comme d'hab et pour of= tu colles /chemin/vers/le/point/de/montage/fichier0bits
L'idée étant juste d'écrire des 0 sur la carte

Message cité 1 fois
Message édité par o'gure le 05-04-2014 à 09:14:42

---------------
Relax. Take a deep breath !
Reply

Marsh Posté le 05-04-2014 à 10:13:38    

o'gure a écrit :

pas besoin de chroot, tu montes ta carte comme d'hab et pour of= tu colles /chemin/vers/le/point/de/montage/fichier0bits
L'idée étant juste d'écrire des 0 sur la carte


Mais quel âne suis-je donc ? Pourquoi faire simple quand on peut faire compliqué, hein ?
 
Merci.


---------------
$ man woman
Reply

Marsh Posté le 06-04-2014 à 19:45:30    

zipe31 a écrit :


Mais quel âne suis-je donc ? Pourquoi faire simple quand on peut faire compliqué, hein ?
 
Merci.


 
Par contre fait attention, tu vas réduire la durrée de vie de ta carte SD.  
 
Pour faire une sauvegarde le mieux est encore de faire un tar.

Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed