Partage
  • Partager sur Facebook
  • Partager sur Twitter

Probleme de script avec fabric.

    30 juillet 2015 à 15:53:51

    Bonjour à tous 

    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

    -
    Edité par d0ctrine 30 juillet 2015 à 16:12:40

    • Partager sur Facebook
    • Partager sur Twitter
      30 juillet 2015 à 18:14:59

      salut,

      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.

      • Partager sur Facebook
      • Partager sur Twitter

      Validez la réponse utile « Un problème clairement exposé est à moitié résolu. » Pas de MP technique

        4 août 2015 à 11:07:18

        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.

        • Partager sur Facebook
        • Partager sur Twitter

        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.
        • Editeur
        • Markdown