Pages : 1
#1 Le 04/09/2013, à 20:22
- koorosh
Probleme Script Backup
Bonjour,
Je me permets de poster ce message afin de sollicter votre aide.
je commence à créer un script pour faire mes backup mais j'ai un petit souci dans mon code à ce niveau la :
echo -e "$blanc Entrez le repertoire ou le fichier à restaurer suivi de $rougefonce.tar.gz$normal :\c "; \
read -e restaurer; \
echo -e "Entrer le dossier ou fichier cible :\c "; \
read -e cible; \
tar -cvzf $restaurer $cible
sleep 1
if [[ $! == 0 ]]
then
echo -e "sauvegarde Terminé! [$vertclair "OK"$normal]\n"
else
echo -e "$rougefonce Erreur durant la sauvegarde /!\ $normal"
exit 1
fi
echo -n "où voulez-vous stocker votre backup ? :"; \
read -e deplacer; \
mv $restaurer $deplacer
echo -e "Appuyer sur <Enter> pour revenir au Menu ...."
;;
enfaite il extrait bien tar.gz mais il m'affiche toujours le message erreur que j'ai créé !
Voici le code complet :
#!/bin/bash
#AIDE CODE COULEUR#
#
#Couleur Texte Fond
#Noir 30 40
#Rouge 31 41
#Vert 32 42
#Jaune 33 43
#Bleu 34 44
#Magenta 35 45
#Cyan 36 46
#Blanc 37 47
#
#effet:
#
#Effet Code
#normal 0
#gras 1
#non gras 21
#souligné 4
#non souligné 24
#clignotant 5
#non clignotant 25
#inversé 7
#non inversé 27
noir='\e[0;30m'
gris='\e[1;30m'
rougefonce='\e[0;31m'
rose='\e[1;31m'
vertfonce='\e[0;32m'
vertclair='\e[1;32m'
orange='\e[0;33m'
jaune='\e[1;33m'
bleufonce='\e[0;34m'
bleuclair='\e[1;34m'
violetfonce='\e[0;35m'
violetclair='\e[1;35m'
cyanfonce='\e[0;36m'
cyanclair='\e[1;36m'
grisclair='\e[0;37m'
blanc='\e[1;37m'
blancclignotant='\e[5;37m'
normal='\e[0m'
echo
echo -e $blanc"##################################################"$normal
echo -e $orange"################## TUX-SECURITY ##################"$normal
echo -e $blanc"##################################################"$normal
echo -e $blanc"###########" $rose "BY Cyrus" $blanc"#############################"$normal
echo
while :
do
echo -e $bleufonce"################################"$normal
echo -e $bleufonce"#######"$normal $vertclair"- 1 - Sauvegarde"$bleufonce" #####"$normal
echo -e $blanc"#######" $vertclair"- 2 - restauration" $blanc"#####"$normal
echo -e $blanc"#######" $vertclair"- 3 - Fin " $blanc"#####"$normal
echo -e $rougefonce"################################"$normal
echo -e $rougefonce"# "$blanc "Entrer le choix" $vertclair"1"$blanc" ou"$vertclair" 2"$blanc" ou"$vertclair" 3"$rougefonce" #"$normal
echo -e $rougefonce"################################"$normal
echo
echo
read -p "Votre Choix: " reponse
case "$reponse" in
1) echo "vous avez choisi la sauvegarde"
sleep 1
echo -e "$orange3$normal"
sleep 1
echo -e "$orange2$normal"
sleep 1
echo -e "$orange1$normal"
sleep 1
echo -e "$blanc Entrez le repertoire ou le fichier à restaurer suivi de $rougefonce.tar.gz$normal :\c "; \
read -e restaurer; \
echo -e "Entrer le dossier ou fichier cible :\c "; \
read -e cible; \
tar -cvzf $restaurer $cible
sleep 1
if [[ $! == 0 ]]
then
echo -e "sauvegarde Terminé! [$vertclair "OK"$normal]\n"
else
echo -e "$rougefonce Erreur durant la sauvegarde /!\ $normal"
exit 1
fi
echo -n "où voulez-vous stocker votre backup ? :"; \
read -e deplacer; \
mv $restaurer $deplacer
echo -e "Appuyer sur <Enter> pour revenir au Menu ...."
;;
2) echo "Vous avez choisi la restauration"
sleep 1
echo -e "$orange3$normal"
sleep 1
echo -e "$orange2$normal"
sleep 1
echo -e "$orange1$normal"
sleep 1
echo -e "Rechercher votre archive $rougefonce(tar.gz):$normal\c"; \
read -e restauration; \
echo -e "Rechercher la localisation du fichier extrait:\c"; \
read -e localiser; \
tar -czf $restauration $localiser
if [[ $! == 0 ]]
then
echo -e "Restauration terminé ![$vertclairOK$normal]\n"
else
echo -e "$rougefonce Erreur durant la sauvegarde /!\ $normal"
exit 1
fi
read x
;;
esac
done
"Les paroles peuvent être plus tranchantes qu'un sabre affûté" écrit par Omar Khayam poète perse.
Hors ligne
#2 Le 04/09/2013, à 21:08
- ytreza
Re : Probleme Script Backup
Bonsoir !
Je n'ai pas lu tout ton script, mais quelque chose m'a sauté à l’œil :
à la ligne suivante :
if [[ $! == 0 ]]
je pense que tu as confondu
$! : le PID du dernier processus fils lancé
et
$? : le retour de la dernière commande exécutée
Si c'est bien le cas, il faut que tu enlèves la commande "sleep 1" entre la commande "tar" et le test, car sinon tu ne testes pas que "tar" c'est bien exécutée, mais que la commande "sleep" c'est bien exécuté... d'ailleurs cette commande "sleep", à cet endroit, ne sert a rien, si ce n'est a faire patienter l'utilisateur pendant une seconde.
je te propose donc de remplacer :
tar -cvzf $restaurer $cible
sleep 1
if [[ $! == 0 ]]
par :
tar -cvzf $restaurer $cible
if [[ $? == 0 ]]
Hors ligne