Contenu | Rechercher | Menus

Annonce

Si vous rencontrez des soucis à rester connecté sur le forum (ou si vous avez perdu votre mot de passe) déconnectez-vous et reconnectez-vous depuis cette page, en cochant la case "Me connecter automatiquement lors de mes prochaines visites".
Test de l'ISO d'Ubuntu francophone : nous avons besoin de testeurs pour la version francophone d'Ubuntu 14.04. Liens et informations ici.

Attention, une faille de sécurité dans bash a récemment été rapportée, il est recommandé de mettre à jour son système (plus de détails) *** mise à jour 12/10/2014 ***

#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

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

Haut de page ↑