Léa-Linux & amis :   LinuxFR   GCU-Squad   GNU
[Script Shell] Sauvegarde toutes les 24H
Envoyé par: Xunil21

Salut à tous !
Voilà, je suis actuellement comptable dans une petite boite de gestion à Marseille (Soleil Soleil ^^) et on a 2-3 postes sur unix pour tout ce qui est backup etc.. Enfin voilà, j'aimerai bien pouvoir faire un script de sauvegarde automatique de mes fichiers. Donc j'ai chercher des scripts sur internet et j'en ai trouvé un mais : 1- ca fonctionne pas smiling smiley et 2- J'aimerai l'optimisé
Voilà le script

#! /bin/sh

source="/Users/albert/Desktop/ProjetShell/Travail/"
cible="/Users/albert/Desktop/ProjetShell/Cible/"
rapport="/Users/albert/Desktop/"

heures=$(date +%H)
minute=$(date +%M)
jour=$(date +%d)
mois=$(date +%m)

nom_backup=$(basename "${source}")



echo "" >> ~/Desktop/log_backup.txt
echo "--------------------------------------------------" >> $rapport
echo 'Backup du dossier '$nom_backup 'du' $jour'/'$mois 'a' $heures'h'$minute >> $rapport
echo "--------------------------------------------------" >> $rapport

rsync -vrup --delete "${source}" "${cible}" >> $rapport
echo "" >> $rapport
echo "*****************************************************************" >> $rapport

exit 0

Voilà le must ca serait que ce script puisse faire ca :
- tous les fichiers d’un répertoire donné, modifiés dans les dernières 24h, seront archivés et compressés
- si le fichier archive existe déjà j'ai le choix entre l’écraser et ne pas sauvegarder

Voilà j'en appelle à votre grande sagesse pour m'aider grinning smiley
Allez ciaoo les gens winking smiley

Poste le Monday 8 May 2006 12:52:17
Répondre     Citer    
Re: [Script Shell] Sauvegarde toutes les 24H
Envoyé par: Sve@r

Hum... ton script a l'air bien compliqué par rapport à ton besoin. En plus, il utilise "rsync" que je ne connais absolument pas...
Citation
Xunil21
- tous les fichiers d’un répertoire donné,
modifiés dans les dernières 24h, seront archivés
et compressés
- si le fichier archive existe déjà j'ai le choix
entre l’écraser et ne pas sauvegarder

Pas de pb avec "tar"
#!/bin/sh

# Répertoire de travail temporaire
repTmp="/tmp"

# Pour stocker la liste des fichiers
fileList="`basename $0 .sh`_$$.list"
nameList="$repTmp/$fileList"

# Le nom du fichier archive
repArch="/home/machin/chose"
fileArch="svg_`date '+%y%m%d'`"
nameArch="$repArch/$fileArch"

# Le répertoire à sauvegarder
repSvg="/home/machin/truc"

# Création de la liste des fichiers modifiés depuis 1 jour
find "$repSvg" -mtime -1 -print > "$nameList"

# Archivage (et compression)
tar cvfzT "$nameArch" "$nameList"

# Effacement liste
rm -f "$nameList"

Ce script te génèrera une archive différente chaque jour donc la partie "confirmer l'écrasement" est inutile. Surtout qu'elle est très dangereuse. Imagine que tu sauvegardes pendant 3 semaines en écrasant à chaque fois l'archive de la veille par celle du jour, et que tu perdes d'un coup tous tes fichiers => tu ne pourras restaurer que ceux de la dernière archive.

Ce mécanisme de "sauvegarde incrémentale" (ne sauvegarder que ce qui a été modifié depuis la dernière sauvegarde) nécessite pour être complet
- une sauvegarde totale de temps en temps
- la conservation de toutes les sauvegardes incrémentales faites depuis la sauvegarde totale
Si tu perds ton répertoire sauvegardé
- tu réinstalles la sauvegarde totale
- tu réinstalles toutes les sauvegardes incrémentales les unes après les autres dans l'ordre où elles ont été créées

L'homme qui murmurait à l'oreille des pingouins
[fr.lang.free.fr]

Poste le Monday 8 May 2006 13:59:11
Répondre     Citer    
Re: [Script Shell] Sauvegarde toutes les 24H
Envoyé par: Xunil21

Alors là, grand merci à toi pour cette réponse aussi rapide et complète !! Je ne pouvais esperer mieux smiling smiley
Je ne voudrais pas abuser de ta gentilesse, mais serait il possible que tu m'éxpliques comment gerer le 2ème point c'est à dire : si le fichier existe déjà, j'ai le choix d'écraser ou pas. Je ne critiques pas ta solution qui est meilleure, c'est juste que je connais mon patron et si je lui montres ton amélioration, avec le script de base, ca passera mieux smiling smiley

Longue vie et prospérité !

-----------------------------
"La logique n'est que le commencement de la sagesse, non son aboutissement."

Poste le Monday 8 May 2006 16:11:29
Répondre     Citer    
Re: [Script Shell] Sauvegarde toutes les 24H
Envoyé par: Sve@r

Citation
Xunil21
Alors là, grand merci à toi pour cette réponse
aussi rapide et complète !! Je ne pouvais esperer
mieux smiling smiley
Je ne voudrais pas abuser de ta gentilesse, mais
serait il possible que tu m'éxpliques comment
gerer le 2ème point c'est à dire : si le fichier
existe déjà, j'ai le choix d'écraser ou pas. Je ne
critiques pas ta solution qui est meilleure, c'est
juste que je connais mon patron et si je lui
montres ton amélioration, avec le script de base,
ca passera mieux smiling smiley

Pas de pb. Juste avant la partie "Création de la liste des fichiers modifiés", tu insères le bloc suivant:
# Vérification fichier archive déjà existant et non vide
if test -f "$nameArch" -a -s "$nameArch"
then
....while true
....do
........echo "Le fichier '$nameArch' existe déjà - Ecrasement O/N ?"
........read rep
........case $rep in
............[oO]|[oO][uU][iI]|[yY]|[yY][eE][sS])
.................# Sortie de boucle de saisie
.................break;;
............[nN]|[nN][oO][nN]|[nN][oO])
.................# Sortie de programme
.................echo "Abandon de la sauvegarde"
.................exit 1;;
............*) echo "Réponse incorrecte"
........esac
....done
fi
Les "." servent juste à montrer l'indentation mais ils ne sont pas à mettre dans le vrai script...

Citation
Xunil21
Longue vie et prospérité !
Infinie Diversité en Infinies Combinaisons

L'homme qui murmurait à l'oreille des pingouins
[fr.lang.free.fr]

Poste le Monday 8 May 2006 17:58:15
Répondre     Citer    
Re: [Script Shell] Sauvegarde toutes les 24H
Envoyé par: Xunil21

Il n'y a que peu de mots pour exprimer ma reconnaissance !!
Je ne dirai que : majQa' :-))

Poste le Wednesday 10 May 2006 11:58:54
Répondre     Citer    
Re: [Script Shell] Sauvegarde toutes les 24H
Envoyé par: Sve@r

Citation
Xunil21
Il n'y a que peu de mots pour exprimer ma
reconnaissance !!
Comme dirait Earl Dumarest (l'aventurier des étoiles), les mots ne sont que des mots et ne coûtent rien.
Tu veux montrer ta reconnaissance ?
Apprends le shell!!! => [fr.lang.free.fr]


L'homme qui murmurait à l'oreille des pingouins
[fr.lang.free.fr]

Poste le Wednesday 10 May 2006 18:28:10
Répondre     Citer    
Re: [Script Shell] Sauvegarde toutes les 24H
Envoyé par: Sve@r

Citation
Xunil21
Voilà le must ca serait que ce script puisse faire
ca :
- tous les fichiers d’un répertoire donné,
modifiés dans les dernières 24h, seront archivés
et compressés

C'est pas vraiment le must (si tu sauvegardes le mardi à 12h puis le mercredi à 15h, tous les fichiers créés le mardi entre 12 et 15 seront oubliés).
Le must, ce serait qu'à chaque sauvegarde, le script sauvegarde tous les fichiers modifiés après un fichier repère puis qu'il mette à jour la date de ce fichier repère pour le lendemain.
La commande "find" permet de rechercher les fichiers plus récent qu'un certain fichier (option -newer) et la commande "touch" permet d'updater la date d'un fichier (et le crée s'il n'existe pas).

Il est facile de modifier le script pour appliquer cette idée...


L'homme qui murmurait à l'oreille des pingouins
[fr.lang.free.fr]

Poste le Wednesday 10 May 2006 19:11:30
Répondre     Citer    
Re: [Script Shell] Sauvegarde toutes les 24H
Envoyé par: Olivia38540

Kikooo grinning smiley
Chuis étudiante en BTS Informatique de Gestion, spécialisation Developpement, et ton script convient parfaitement à mes besoins, j'ai réussis à l'adapter par contre j'ai un petit problème : sans faire exprès j'ai saisit un paramètre incorrect, ce qui à résulté d'une erreur. Donc j'ai essayé sans résultat de faire en sorte que lorsque mon paramètre saisit est incorrect, le script m'affiche "Les paramètres saisits sont incorrects"
Merci d'avance pour votre aide
Gros bizooo angry smiley

Poste le Wednesday 17 May 2006 10:04:44
Répondre     Citer    
Re: [Script Shell] Sauvegarde toutes les 24H
Envoyé par: Sve@r

Citation
Olivia38540
Kikooo grinning smiley
Chuis étudiante en BTS Informatique de Gestion,
spécialisation Developpement, et ton script
convient parfaitement à mes besoins, j'ai réussis
à l'adapter par contre j'ai un petit problème :
sans faire exprès j'ai saisit un paramètre
incorrect, ce qui à résulté d'une erreur. Donc
j'ai essayé sans résultat de faire en sorte que
lorsque mon paramètre saisit
est incorrect, le
script m'affiche "Les paramètres saisits sont
incorrects"

Ok
Il faut mettre juste après le "#!/bin/sh" et avant le "# Répertoire de travail temporaire" le bloc suivant
if .....................
then
    echo "Les paramètres '$*' sont incorrect"
    exit 1
fi

Evidemment, il faut remplacer les "......" par tous les tests appropriés qui te diront si le ou les paramètres sont incorrects et ça, toi seule peut le dire !!!



L'homme qui murmurait à l'oreille des pingouins
[fr.lang.free.fr]

Poste le Wednesday 17 May 2006 21:30:02
Répondre     Citer    
Re: [Script Shell] Sauvegarde toutes les 24H
Envoyé par: Ben9330

Citation

Message effacé par la modération



Modifié 1 fois. Dernière modification le 02/06/06 08:44 par fred.

Poste le Thursday 1 June 2006 19:35:58
Répondre     Citer    
Re: [Script Shell] Sauvegarde toutes les 24H
Envoyé par: lapipao

Ces quoi ces horreurs ici : signaler à la modération

Poste le Thursday 1 June 2006 20:10:39
Répondre     Citer    
Re: [Script Shell] Sauvegarde toutes les 24H
Envoyé par: lapipao

c'est quoi ces horreurs ici : signalé à la modération !
(la colère me fait perdre mon orthographe !)

Poste le Thursday 1 June 2006 20:12:42
Répondre     Citer    
Re: [Script Shell] Sauvegarde toutes les 24H
Envoyé par: Sve@r

Citation
lapipao
Ces quoi ces horreurs ici : signaler à la
modération

Tiens ? je viens de revenir sur le forum après une semaine et j'ai donc raté ça.
C'est bien la première fois que je vois un message effacé par un modo sur lea-linux...

L'homme qui murmurait à l'oreille des pingouins
[fr.lang.free.fr]

Poste le Saturday 3 June 2006 17:11:55
Répondre     Citer    
Re: [Script Shell] Sauvegarde toutes les 24H
Envoyé par: x

Franchement "l'homme qui murmurait à l'oreille des pingouins" tu es un peu guignole dans ton genre, ton script est plein d'erreurs, l'as tu essayé au moins avant de dire des bétises!

Null

Poste le Thursday 14 September 2006 16:34:13
Répondre     Citer    
Re: [Script Shell] Sauvegarde toutes les 24H
Envoyé par: Sve@r

Citation
x
Franchement "l'homme qui murmurait à l'oreille des
pingouins" tu es un peu guignole dans ton genre,
ton script est plein d'erreurs, l'as tu essayé au
moins avant de dire des bétises!

Null
De quel script parles-tu ? Ce topic en est plein. Es-tu seulement capable de lire un script au lieu d'insulter sans développer ? Evidemment si t'as bêtement fait un copier/coller c'est normal que cela ne marche pas. Les "." que je mets en début de ligne servent à montrer l'indentation (le système de post de ce forum supprime les espaces en début de ligne) et donc ne sont pas à mettre dans un vrai script shell...


L'homme qui murmurait à l'oreille des pingouins
[fr.lang.free.fr]

Poste le Friday 15 September 2006 07:44:24
Répondre     Citer    

Veuillez vous authentifier auparavant pour commenter.

 

Ce forum !
[Script Shell] Sauvegarde toutes les 24H
Pour poser vos questions sur les scripts shell, le Perl, le C, etc... Attention : nous ne sommes pas des spécialistes du dev, ce forum est juste pour de petites aides ponctuelles concernant le développement et les outils de développement.

Sauf mention contraire, les documentations publiées sont sous licence Creative-Commons