Script de sauvegarde switch brocad

Résolu/Fermé
titus98 Messages postés 12 Date d'inscription lundi 28 février 2011 Statut Membre Dernière intervention 21 septembre 2011 - 9 août 2011 à 20:14
zipe31 Messages postés 36402 Date d'inscription dimanche 7 novembre 2010 Statut Contributeur Dernière intervention 27 janvier 2021 - 10 août 2011 à 13:03
Bonjour,


J'utilise un script de sauvegarde pour rapatrier la conf de mes switch , n'étant pas un dieu du script , je rencontre un problème lorsqu'un switch n'est pas joignable ce dernier s'emballe et stop toute action , je pense qu'il me manque une condition permettant de passer a la ligne suivante cependant je ne sais pas comment la formuler ???
Détail de fonctionnement , ce script utilise un fichier texte dans lequel est répertorié le nom des switch , le script est fait de telle sorte qu'il exécute une sauvegarde a chaque ligne du fichier txt ( $line) , a chaque sauvegarde ce dernier créer un répertoire incrémenté par une date dans lequel il dépose les fichiers de conf
A voir également:

8 réponses

zipe31 Messages postés 36402 Date d'inscription dimanche 7 novembre 2010 Statut Contributeur Dernière intervention 27 janvier 2021 6 407
9 août 2011 à 20:20
Salut,

Le plus simple serait d'afficher ton script afin qu'on y jette un oeil, non ?

0
titus98 Messages postés 12 Date d'inscription lundi 28 février 2011 Statut Membre Dernière intervention 21 septembre 2011
10 août 2011 à 09:37
mkdir -p $BROCADE_CONF/home/brocade/Conf'date +%Y%m%d'
chown brocade $BROCADE_CONF/home/brocade//Conf'date +%Y%m%d'

cat $SWLIST | while read LINE
do
Log "SAUVEGARDE DE $LINE"
$BROCADE_SCRIPT |telnet $LINE
sleep $INTERVAL
keeplooping=1;
while [[ $keeplooping -eq 1 ]] ; do
if [ -f /home/brocade/testbkp/Conf'date +%Y%m%d'/renamebeforestor.'date +%Y%m%d'.conf ] ; then
break;
fi
done
mv /home/brocade/Conf'date +%Y%m%d'/renamebeforestor.'date +%Y%m%d'.conf /home/brocade/Conf'date +%Y%m%d'/$LINE.conf
sleep $INTERVAL
done
0
zipe31 Messages postés 36402 Date d'inscription dimanche 7 novembre 2010 Statut Contributeur Dernière intervention 27 janvier 2021 6 407
10 août 2011 à 09:49
Il est complet ton script là ?

C'est normal le double slash dans ton chemin "
chown brocade $BROCADE_CONF/home/brocade//Conf'date +%Y%m%d' " ?

Tu devrais rajouter un test (ping ?) juste avant de lancer le traitement via "telnet"...

Et en fonction de ce test faire ton traitement sur le switch ou passer au suivant.
0
titus98 Messages postés 12 Date d'inscription lundi 28 février 2011 Statut Membre Dernière intervention 21 septembre 2011
10 août 2011 à 10:03
oui j ai juste supprimer klk lignes sinon l'affichage n'est pas correcte sur ce site
0
titus98 Messages postés 12 Date d'inscription lundi 28 février 2011 Statut Membre Dernière intervention 21 septembre 2011
10 août 2011 à 10:05
je pensais a klk du genre cependant je n'ai aucune idée sur la syntaxe ...
0
zipe31 Messages postés 36402 Date d'inscription dimanche 7 novembre 2010 Statut Contributeur Dernière intervention 27 janvier 2021 6 407
10 août 2011 à 10:21
Un truc du genre devrait le faire (à inclure dans ta boucle "while" avant le "telnet") :

ping -c1 $LINE >/dev/null

if [ "$?" -gt 0 ]
then continue
fi
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
titus98 Messages postés 12 Date d'inscription lundi 28 février 2011 Statut Membre Dernière intervention 21 septembre 2011
10 août 2011 à 10:15
je penses que cela ne résoudra pas complètement mon problème , car lorsque le script s emballe , je teste immédiatement la machine qui s'avère joignable , donc je pense qu'il me faudrait un moyen pour faire plusieur tentative en cas d'échec , mais également le moyen de pouvoir passer au switch suivant
0
titus98 Messages postés 12 Date d'inscription lundi 28 février 2011 Statut Membre Dernière intervention 21 septembre 2011
10 août 2011 à 10:32
cat $SWLIST | while read LINE
do
Log "SAUVEGARDE DE $LINE"
ping -c1 $LINE >/dev/null

if [ "$?" -gt 0 ]
then continue
fi
$BROCADE_SCRIPT |telnet $LINE
sleep $INTERVAL
keeplooping=1;
while [[ $keeplooping -eq 1 ]] ; do
if [ -f /home/brocade/testbkp/Conf'date +%Y%m%d'/renamebeforestor.'date +%Y%m%d'.conf ] ; then
break;
fi
done
mv /home/brocade/testbkp/Conf'date +%Y%m%d'/renamebeforestor.'date +%Y%m%d'.conf /home/brocade/testbkp/Conf'date +%Y%m%d'/$LINE.conf
sleep $INTERVAL
done


je penses que je dois oublier quelque chose j ai toujours cette erreur qui tourne en boucle


++ date +%Y%m%d
+ '[' -f /home/brocade/testbkp/Conf20110810/renamebeforestor.20110810.conf ']'
+ [[ 1 -eq 1 ]]
++ date +%Y%m%d
0
zipe31 Messages postés 36402 Date d'inscription dimanche 7 novembre 2010 Statut Contributeur Dernière intervention 27 janvier 2021 6 407
10 août 2011 à 10:37
Quelle erreur ?

A quoi sert cette boucle exactement ? Où est initialisée la variable "$keeplooping" ?
0
titus98 Messages postés 12 Date d'inscription lundi 28 février 2011 Statut Membre Dernière intervention 21 septembre 2011
10 août 2011 à 11:21
Il s'agit d un script que j ai repris , je viens de le modifier le problème est donc reglé , mais maintenant losqu'il arrive a la derniere ligne du fichier txt contenant les ip des switch , le script tourne en boucle et recommence a partir de la première

do
Log "SAUVEGARDE DE $LINE"
#ping -c1 $LINE >/dev/null

#if [ "$?" -gt 0 ]
#then continue
#fi
$BROCADE_SCRIPT |telnet $LINE
echo "Script resultat : $?"
sleep $INTERVAL
#keeplooping=1;
#while [[ $keeplooping -eq 1 ]] ; do
#if [ -f /home/brocade/testbkp/Conf'date +%Y%m%d'/renamebeforestor.'date +%Y%m%d'.conf ] ; then
# break;
# fi
#done
mv /home/brocade/testbkp/Conf'date +%Y%m%d'/renamebeforestor.'date +%Y%m%d'.conf /home/brocade/testbkp/Conf'date +%Y%m%d'/$LINE.conf
if [ "$?" -gt 0 ]
then
Log "Probleme pour le switch $LINE"
fi
#sleep $INTERVAL
done
0
zipe31 Messages postés 36402 Date d'inscription dimanche 7 novembre 2010 Statut Contributeur Dernière intervention 27 janvier 2021 6 407
10 août 2011 à 11:57
On est bien d'accord que ton script maintenant ressemble à ça :

cat $SWLIST | while read LINE

do
Log "SAUVEGARDE DE $LINE"

$BROCADE_SCRIPT |telnet $LINE
echo "Script resultat : $?"
sleep $INTERVAL

mv /home/brocade/testbkp/Conf'date +%Y%m%d'/renamebeforestor.'date +%Y%m%d'.conf /home/brocade/testbkp/Conf'date +%Y%m%d'/$LINE.conf

if [ "$?" -gt 0 ]
then
Log "Probleme pour le switch $LINE"
fi

done
0
titus98 Messages postés 12 Date d'inscription lundi 28 février 2011 Statut Membre Dernière intervention 21 septembre 2011
10 août 2011 à 12:07
oui j ai passer certaines ligne en commentaire , mais comme je ne vois pas comment eviter qu'a la fin de la lecture du fichier texte il recommence a partir de la premier au lieu de stopper
0
zipe31 Messages postés 36402 Date d'inscription dimanche 7 novembre 2010 Statut Contributeur Dernière intervention 27 janvier 2021 6 407
10 août 2011 à 13:03
T'es sur qu'il n'y a pas une autre boucle qui tourne ?
0