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

Oui, c'etait la bonne syntaxe en effet, cependant cela ne permet pas de gérer le timeout d'un routeur qui ne réponds pas, comme je l'esperais...
Le script bloque, et dès lors que je l'arrete avec Ctrl+C, LA le real s'affiche dans le fichier temp et est traité...
Tu as une autre solution ? Parce que là...je bloque...