Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
3026 connectés 

  FORUM HardWare.fr
  Linux et OS Alternatifs

  Compression de données lourdes

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Compression de données lourdes

n°651351
Hermolas
Posté le 18-03-2005 à 12:49:53  profilanswer
 

Bonjour,
 
[Debian Sarge, noyau 2.6.8]
 
J'ai un système de sauvegardes automatiques à mettre en place, assez basique mais avec graveur DVD. J'utiliserai le cron. Comme le volume de données est sensé pouvoir atteindre plus de 30Go, il est évident qu'on va passer par une phase de compression. J'aurais bien voulu utiliser rar, mais il n'est pas libre, donc je me suis rabattu sur tar. Pour 30 Go, cette compression depassant certainement 8Go (à peu près... la taille d'un DVD double couche), il faudrait qu'il change de dvd à chaque fois qu'un est plein. J'imagine qu'il faut utiliser les options M L et F (et jfc bien sûr), mais comment les imbriquer ? (le -F servirai à executer un script envoyant un mail par exemple pour informer qu'il faut changer de DVD)
 
Des passages du man tar
 

Citation :

 -M, --multi-volume         créer/afficher/extraire une archive à
                             multiples volumes
  -L, --tape-length=N        utiliser un autre ruban après l'écriture
                             de N x 1024 octets
  -F, --info-script=SCRIPT   exécuter le SCRIPT à la fin de chaque
                             ruban (implique -M)

mood
Publicité
Posté le 18-03-2005 à 12:49:53  profilanswer
 

n°651356
Hermolas
Posté le 18-03-2005 à 13:04:10  profilanswer
 

Je me rend compte que ça n'est peut-être pas possible de "graver" comme ça. Si c'est le cas, il faudrait faire ceci :
 
- création d'un tar avec limite à 8Go
- lorsqu'il a dépassé les 8Go il lance un script qui grave ce tar (et envoie un mail pour dire qu'il va falloir changer de DVD)
- passe au tar suivant et ainsi de suite jusqu'à ce que tout le répertoire à compresser ait été gravé.

n°651393
Mjules
Modérateur
Parle dans le vide
Posté le 18-03-2005 à 14:24:27  profilanswer
 

si tu as de la place à revendre sur le média temporaire, tu peux faire un tar de tout ce que tu as à sauvegarder et ensuite tu le découpes avec split avant de graver chaque partie.


---------------
Celui qui pose une question est idiot 5 minutes. Celui qui n'en pose pas le reste toute sa vie. |  Membre du grand complot pharmaceutico-médico-scientifico-judéo-maçonnique.
n°651417
jotenakis
Posté le 18-03-2005 à 14:43:07  profilanswer
 

avec une commande du genre  
tar cfz - /mes/dossiers/à/sauvegarder | split -b ${taille}m -d - backup-
ça marche.


---------------
Jotenakis
n°651671
Hermolas
Posté le 18-03-2005 à 16:37:31  profilanswer
 

Merci infiniment à vous 2. J'ai testé et c'est OK pour la création. Cette commande me donner un certain nombre de fichiers (j'ai gardé le nom "backup" ) : backup-00 (de type gzip archive) backup-01 (de type inconnu) backup-02 (de type inconnu) etc... Il ne me reste plus qu'à trouver comment décopresser à partir de plusieurs backup. :p *part fouiller*
 
Encore merci !

n°651678
Mjules
Modérateur
Parle dans le vide
Posté le 18-03-2005 à 16:46:21  profilanswer
 

avec cat tu les rassembles et tu pipes pour exraire ton tar (à tester) :
cat fichier1 fichier2 fichier3 |tar xzf -


Message édité par Mjules le 18-03-2005 à 16:46:38

---------------
Celui qui pose une question est idiot 5 minutes. Celui qui n'en pose pas le reste toute sa vie. |  Membre du grand complot pharmaceutico-médico-scientifico-judéo-maçonnique.
n°651712
Hermolas
Posté le 18-03-2005 à 17:13:21  profilanswer
 

Ca marche, j'ai juste un petit message qui s'affiche lorsque je dészip, mais je ne sais pas comment l'interpréter :
 
bzip2: (stdin): trailing garbage after EOF ignored
 
La seule chose que j'ai changé dans ta commande c'est le "z", j'ai mis "j" pour qu'il fasse en bzip2 ce qui donne :  
 
# tar jcf - /home/commun/Drivers | split -b 300k -d - TEST-
tar: Removing leading `/' from member names
# cat TEST-00 >> FINAL
# cat TEST-01 >> FINAL
# cat TEST-02 >> FINAL
# cat TEST-03 >> FINAL
# tar xfj FINAL
 
bzip2: (stdin): trailing garbage after EOF ignored
 
 
Au passage, la présence du message "tar: Removing leading `/' from member names" est normale ?  
 
Le nioob n'a plus de question ;)

n°651713
Mjules
Modérateur
Parle dans le vide
Posté le 18-03-2005 à 17:14:47  profilanswer
 

pour le message de tar, c'est normal, il vire le / au début du patch il me semble (ça se contrôle avec une option)
 
pour l'incidence du message de bzip2, le plus simple est surement de comparer les sommes md5 avant et après, tu verras si ce sont les même (md5sum ton_fichier)


---------------
Celui qui pose une question est idiot 5 minutes. Celui qui n'en pose pas le reste toute sa vie. |  Membre du grand complot pharmaceutico-médico-scientifico-judéo-maçonnique.
n°651865
jotenakis
Posté le 18-03-2005 à 23:28:25  profilanswer
 

pour l'erreur ça n'a pas d'incidence. J'ai archivé/découpé une archive source.tar.gz  en plusieurs dest-$i et après reconstruction avec un cat sur les différents dest-$i, le fichier résultant correspond parfaitement au source.tar.gz initial.
 
pour le / enlevé, c'est souhaitable car ça permet de travailler en dossier relatif et non absolu.


---------------
Jotenakis
n°651873
jotenakis
Posté le 18-03-2005 à 23:39:30  profilanswer
 

le test du md5sum est probant :  


[~]$ tar cfz - Univers-1.avi | split -b 80m -d - backup-
[~]$ mv Univers-1.avi Univers-1.avi.old
[~]$ cat backup-00 backup-01 backup-02 backup-03 backup-04 | tar xvfz -
Univers-1.avi
 
gzip: stdin: decompression OK, trailing garbage ignored
tar: Child returned status 2
tar: Statut d'erreur reporté d'erreurs précédentes.
[~]$ md5sum Univers-1.avi
d766aa6922c691ab8fe1d55d697ec48b  Univers-1.avi
[~]$ md5sum Univers-1.avi.old
d766aa6922c691ab8fe1d55d697ec48b  Univers-1.avi.old



---------------
Jotenakis
mood
Publicité
Posté le 18-03-2005 à 23:39:30  profilanswer
 

n°652683
Hermolas
Posté le 21-03-2005 à 10:00:01  profilanswer
 

Merci infiniment ;)

n°652814
Hermolas
Posté le 21-03-2005 à 13:04:51  profilanswer
 

Ah si ! Une dernière chose (décidement ^^), je pense basique pour certains :  
 
tar jcf - /home/commun/Drivers | split -b 300k -d - TEST-
 
A quoi correspondent ces 2 tirets en rouge ? Je me demande pourquoi sans eux la commande ne marche pas.

n°652826
e_esprit
Posté le 21-03-2005 à 13:26:14  profilanswer
 

Pour tar, ca veut dire qu'il doit utiliser la sortie standard comme fichier de destination et non un fichier bidule.tar classique.
 
Pour le split cela signifie qu'il doit utiliser l'entrée standard comme fichier d'entrée à découper.
 
cela permet d'utiliser le pipe '|' pour associer ces deux commandes ensemble :jap:


---------------
Ce n'est point ma façon de penser qui a fait mon malheur, c'est celle des autres.
n°652853
Hermolas
Posté le 21-03-2005 à 14:42:27  profilanswer
 

Génial ;)
 
Donc voilà le script que j'ai fait pour une partie de la sauvegarde automatique (j'ajouterai la suite au fur et à mesure, des fois que ça dépanne quelqu'un) :
 

Citation :

#!/bin/sh
cd /home/tmp
tar jcfPp - /home --exclude /home/tmp/* | split -b 4608m -d - SAUVE-


 
L'option P vient du man tar :
 
       -P, --absolute-paths
              n'enlève pas les '/' au début des noms des fichiers.

 
Donc à priori ce script devrait "tarer" le répertoire /home et le découper en tranche de 4608 Mo (1024*4,5 Go), puis mettre tout ça dans /home/tmp.
 
Il n'y a qu'une seule chose que je trouve bizare : /home fait 1.8 Go et le tar créé fait 3 Go. oO
Est-ce que ça a un rapport avec ce message apparu ? "tar: /home/tmp/SAUVE-00: le fichier a été modifié durant sa lecture". Sûrement, je réessaierai quand il n'y aura plus personne sur le réseau.


Message édité par Hermolas le 21-03-2005 à 16:36:51
n°652859
e_esprit
Posté le 21-03-2005 à 14:54:56  profilanswer
 

le --exclude ne fonctionne pas sur un repertoire mais sur un fichier.
 
Essaye avec une pattern comme : --exclude /home/tmp/*
(je garantis pas le resultat mais ca mange pas de pain)


---------------
Ce n'est point ma façon de penser qui a fait mon malheur, c'est celle des autres.
n°652901
Hermolas
Posté le 21-03-2005 à 16:33:51  profilanswer
 

Ca roule. J'ai édité au dessus en ajoutant un p (permet de garder les même permissions). Par contre le taux de compression reste assez moyen. :s Je passe de 1,8 Go à 1,5 Go.
 
J'attaque la gravure sur DVD et l'envoi par mail de rapport (ou demande de changement de DVD).
 
To be continued...


Message édité par Hermolas le 21-03-2005 à 16:55:42
n°653187
jotenakis
Posté le 22-03-2005 à 00:34:56  profilanswer
 

la commande que j'utilise est la suivante :
nice -19 tar --exclude /home/tmp --exclude /home/bidule -czpf - /home 2>>$logfile | split -b ${taille}m -d - SAUVE-
 
ça marche uniquement si les --exclude sont AVANT le -czpf (et le --exclude peux concerner des dossiers). Va savoir pourquoi...


---------------
Jotenakis

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Linux et OS Alternatifs

  Compression de données lourdes

 

Sujets relatifs
Xvid / ogg : compression meilleure sous linux ?logiciel de manipulation de données EXIM
Données de la commande "free" [répondu]Données éffacées ou cachées?
Compression d'imagesRécuperer des données sur fat32 après partitionnement ?
[SuSE]Installation en dual Boot avec Win2k et protection des donnéesRécuperer les données d'un HD FAT32 avec knoppix
[knoppix] enregistrer des données sur le DD avec le cd bootable[SuSE 9.1]Installation en protégeant mes données
Plus de sujets relatifs à : Compression de données lourdes


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR