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

 


Dernière réponse
Sujet : Compression de données lourdes
jotenakis 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...

Votre réponse
Nom d'utilisateur    Pour poster, vous devez être inscrit sur ce forum .... si ce n'est pas le cas, cliquez ici !
Le ton de votre message                        
                       
Votre réponse


[b][i][u][strike][spoiler][fixed][cpp][url][email][img][*]   
 
   [quote]
 

Options

 
Vous avez perdu votre mot de passe ?


Vue Rapide de la discussion
jotenakis 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...
Hermolas 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...
e_esprit 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)
Hermolas 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.

e_esprit 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:
Hermolas 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.
Hermolas Merci infiniment ;)
jotenakis 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 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.
Mjules 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)
Hermolas 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 ;)
Mjules avec cat tu les rassembles et tu pipes pour exraire ton tar (à tester) :
cat fichier1 fichier2 fichier3 |tar xzf -
Hermolas 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 !
jotenakis avec une commande du genre  
tar cfz - /mes/dossiers/à/sauvegarder | split -b ${taille}m -d - backup-
ça marche.
Mjules 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.
Hermolas 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é.
Hermolas 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)


Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)