Bonjour,
Je suis actuellement sur un script shell pour saisir automatiquement des commandes sur des équipements distants.
Tout est terminé, prêt à etre publié sur la FAQ de commentcamarche, mais il reste cependant un détail qui est assez crucial, en ce qui concerne la gestion d'erreur, qui est le timeout.
Pour palier ce problème, j'ai pensé a lancer le fichier généré dans le script avec la commande "time -p", de récupérer la valeur après "real", et de forcer le script de continuer après que la valeur après ce "real" ai atteinds 15 (secondes).
Cela donne :
time -p ssh.sh 2>&1 > temp.log
TEMPS=`grep 'real ' temp.log | sed 's/real /§/' | cut -d'§' -f2 | cut -d' ' -f1 | cut -d'.' -f1`
if [ $TEMPS -gt 15 ]
then
echo "Le routeur $routeur ne réponds pas !";
echo "$routeur : connection timed out" >> erreurs.txt
continue
fi
J'ai cependant une chose assez bizarre...le time s'affiche dans la sortie standard (affichée à l'écran quoi...), mais aucunement ne rentre dans le fichier temp.log, donc forcement il me renvoie une erreur comme quoi il n'est pas arrivé à faire le grep...
Ai-je oublié un détail important ?
Merci pour votre aide !
Michael