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

  FORUM HardWare.fr
  Programmation
  Shell/Batch

  tar --exclude ne fonctionne pas comme je le souhaite !!

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

tar --exclude ne fonctionne pas comme je le souhaite !!

n°1428934
express__3​8
Posté le 21-08-2006 à 19:52:47  profilanswer
 

Salut tout le monde ;)
 
Voilà j'aimerai votre aide sur mon premier script de backup :

Code :
  1. #! /bin/bash
  2. # backup.sh
  3. ERREUR_ROOT=-1
  4. moi=`whoami`
  5. if [ "$moi" != "root" ]; then
  6. echo "Le backup ne peut etre fait que par le root et non par $moi"
  7. echo "Pensez à utilisez sudo ou a passer en root"
  8. exit $ERREUR_ROOT;
  9. fi
  10. #################################
  11. #Variables pouvant être modifiées
  12. #################################
  13. #Dossier de destination
  14. stockage="/media/usbdisk/save/`date +save-%d.%m.%Y.-%H.%M`"
  15. #Dossiers systeme à sauvegardés
  16. systeme="/etc /boot /usr/local"
  17. #dossier perso à sauvegardés
  18. perso="/home"
  19. #Dossiers à ne pas sauvegardés
  20. exclure="/home/chris/Tchgt/easyubuntu"
  21. #################################
  22. #Fin des variables à modifiées
  23. #################################
  24. #On verifie qu'il a y a des dossiers Perso  en sauvegarde
  25. #On crée le dossier de destination à la condition d'avoir des dossiers
  26. if [ -n "$perso" ] && mkdir -p "$stockage"
  27. then
  28. echo "Création du dossier de destination:" $stockage
  29. echo "Vous avez des dossiers perso à sauvegardés"
  30. #Puis on archive et on compresse cellui-ci dans le dossier
  31. echo "Archivage et Compréssion de /home en cours"
  32. echo "exclusion des dossiers : | .aMule | Download | Audio-Video | Partage | .Trash |"
  33. tar czvf "$stockage"/perso.tar.gz \
  34. --exclude /home/chris/.aMule \
  35. --exclude /home/chris/Download \
  36. --exclude /home/chris/Audio-Video \
  37. --exclude /home/chris/Partage \
  38. --exclude /home/chris/.Trash \
  39. $perso
  40. echo "Fin des opérations"
  41. fi
  42. if [ -n "$systeme" ] && mkdir -p "$stockage"
  43. then
  44. echo "Vous avez des dossiers système à sauvegardés"
  45. #Puis on archive et on compresse cellui-ci dans le dossier
  46. echo "Archivage et Compréssion de /boot /etc/ usr/local en cours"
  47. tar cvf - $systeme | gzip -9c > "$stockage"/systeme.tar.gz
  48. fi


J'aimerai votre avis sur l'option --exclude , je souhaiterai faire en premier une archive tar et ensuite la gzippé mais je n'y arrive pas quelqu'un paux m'aider à résoudre ce probleme qui en ai un pour moi ?
En fait je voudrai faire :

Code :
  1. tar czvf  $perso | gzip -9c > --exclude $exclure"$stockage"/perso.tar.gz

 
Mais je ne sais pas trops pourquoi ca ne fonctionne ps....
Merci de votre aide :)

Message cité 1 fois
Message édité par express__38 le 21-08-2006 à 19:53:20
mood
Publicité
Posté le 21-08-2006 à 19:52:47  profilanswer
 

n°1429957
Sve@r
Posté le 23-08-2006 à 14:55:00  profilanswer
 

Bon, déjà on va commencer par les petits trucs de ce script qu'il faudrait revoir
 

express__38 a écrit :

Code :
  1. moi=`whoami`
  2. if [ "$moi" != "root" ]; then ...



Essaye de regarder du coté de la commande "id" qui est plus rapide que "who am i"...
 

express__38 a écrit :

Code :
  1. if [ -n "$perso" ] && mkdir -p "$stockage"



Tu testes si une variable "perso" que tu as toi-même remplie n'est pas vide ??? Il y a peu de chance qu'elle le soit. Tu pourrais aussi tester si "1" = "1" de temps en temps histoire de ralentir un peu plus ton script...
Moi j'aurais écrit

Code :
  1. if test ! -d "$stockage"
  2. then
  3.   mkdir -p "$stockage"
  4.   ...


 

express__38 a écrit :

Code :
  1. tar czvf "$stockage"/perso.tar.gz \
  2. --exclude /home/chris/.aMule \
  3. --exclude /home/chris/Download \
  4. --exclude /home/chris/Audio-Video \
  5. --exclude /home/chris/Partage \
  6. --exclude /home/chris/.Trash \
  7. $perso



Tu pourrais mettre "/home/chris" dans une variable comme ça, si ça change un jour, tu n'as qu'une modif à faire. Mais à quoi sert la variable "exclure" définie un peu plus haut ???
 

express__38 a écrit :

je souhaiterai faire en premier une archive tar et ensuite la gzipper

Code :
  1. tar czvf  $perso | gzip -9c > --exclude $exclure"$stockage"/perso.tar.gz



Bon, déjà l'option "--exclude" est une option de "tar" donc il faut la mettre avec "tar" et non avec "gzip".
tar cvf archive.tar -exclude dossier_a_exclure liste_des_dossier_a_archiver
Ensuite, si tu veux renvoyer la sortie de "tar" sur une autre commande style "gzip", il faut penser au "tiret" qui indique à "tar" de créer l'archive sur la sortie standard. Puis on pipe cette sortie standard sur la commande "gzip"
=> tar cvf - liste_des_dossier_a_sauvegarder |gzip -9c >archive.tar.gz
Mais sous Linux, la commande "tar" contient déjà une option de compression "z" qui rend donc inutile le passage par "gzip" (surtout qu'en général, l'algo de compression est tel qu'une double compression augmente la taille du fichier final)
=> tar cvzf archive.tgz liste_des_dossier_a_sauvegarder


---------------
Vous ne pouvez pas apporter la prospérité au pauvre en la retirant au riche.

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Shell/Batch

  tar --exclude ne fonctionne pas comme je le souhaite !!

 

Sujets relatifs
move_uploaded_file ou imagecreatefromjpeg ne fonctionne pasComment fonctionne un lecteur RSS
Fonction remplacement ne fonctionne pas !Envoi données formulaire vers BDD ne fonctionne pas...
onChange fonctionne sous Firefox mais pas IE...phpmyannuaire. Le compteur de clics de fonctionne plus
Tableau height="100%" fonctionne pasRéduction d'imagesqui ne fonctionne pas...
Ajax qui fonctionne sur serveur local mais pas sur un serveur distantcin ne fonctionne pas - Help please
Plus de sujets relatifs à : tar --exclude ne fonctionne pas comme je le souhaite !!


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