J'essaye d’écrire un script qui permet de déployer des patchs sur un groupe d'actif. Pour appliquer ces patchs je me sert de fabric. Voilà le morceau de script concerné :
while read ligne
do
ping -c 1 $ligne > /dev/null
if [ $? -eq "0" ]
then
fab -H $ligne $patch &
if [ $? -eq "0" ]
then
echo "$ligne patché avec succès" >> ip_OK.txt
else
echo $ligne >> ip_erreur_patch.txt
fi
else echo "$ligne" >> ip_pas_OK.txt
fi
done < ip.txt
Sauf que lorsqu’une ip n'est pas joignable le script plante et ne passe pas à la suivante. Ce qui est bizard c'est qu'il y a un test effectué pour savoir si l'ip est joignable via un ping. Du coup la j'avoue que je sèche, avez vous une idée ?
Merci d'avance.
EDIT 1 : J'ai modifié mon if comme ceci
if [ $(ping -c 1 $ligne > /dev/null) ]
Du coup le script ne passe même plus sur les ip fonctionnel. Tout va dans le else echo "$ligne" >> ip_pas_OK.txt
les nombres étant "insécables", ils n'ont pas besoin d'être mis entre guillemets.
la modification de ton if devrait être
if ping -c 1 $ligne >/dev/null 2>&1
ainsi, tu ne testes pas la sortie de la commande (qui doit être entre guillemets, car elle peut comporter plusieurs mots), mais conditionnes l'exécution des instructions suivantes à la réussite ou l'échec de la commande (ping). mais ça ne change pas grand-chose.
il est plus gênant de tester le code retour d'une commande envoyée en arrière-plan, qui retourne toujours 0.
Validez la réponse utile « Un problème clairement exposé est à moitié résolu. » Pas de MP technique
Non du coup j'ai fait évoluer mon script, de façon à ce que fabric ne passe que sur des ip valides. Une premiere boucle while pour jute tester les ip, puis une deuxième pour exécuter fabric sur cette nouvelle liste d'ip.
C'est moins propre que prévue mais tant pis.
Merci de ta reponse en tout cas =D.
Probleme de script avec fabric.
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
Validez la réponse utile « Un problème clairement exposé est à moitié résolu. » Pas de MP technique