Script de sauvegarde switch brocad
Résolu
titus98
Messages postés
13
Statut
Membre
-
zipe31 Messages postés 34620 Date d'inscription Statut Contributeur Dernière intervention -
zipe31 Messages postés 34620 Date d'inscription Statut Contributeur Dernière intervention -
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
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
8 réponses
-
Salut,
Le plus simple serait d'afficher ton script afin qu'on y jette un oeil, non ?
-
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-
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.
-
-
oui j ai juste supprimer klk lignes sinon l'affichage n'est pas correcte sur ce site
-
je pensais a klk du genre cependant je n'ai aucune idée sur la syntaxe ...
-
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question -
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
-
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 -
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-
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
-
-
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