Comment vérifier si un serveur est en cours d'exécution

Je veux utiliser la commande ping pour vérifier si un serveur est en place. Comment pourrais-je faire ce qui suit:

ping $URL
if [$? -eq 0]; then
    echo "server live"
else
    echo "server down"
fi

Comment pourrais-je y arriver? Aussi, comment pourrais-je faire en sorte qu'elle renvoie la valeur 0 lors de la première réponse au ping, ou renvoie une erreur si les dix premiers ping échouent? Ou bien, y aurait-il une meilleure façon d'accomplir ce que je suis en train de faire ci-dessus?

  • ajouter des espaces autour de votre [ et ] ou tout simplement le code if ping $URL ; then
  • (Bien sûr, vous ne pouvez pas tester une URL, juste un serveur.)
  • Quels sont les cas qui ne sont ni un succès ni un échec? Vous désirez peut-être à penser plus sérieusement à vos critères.
  • Il ne voulut jamais être un succès ou un échec. Succès = serveur répond, échec = le serveur ne répond pas (après n tentatives)
  • Vous pouvez obtenir une réponse à l'une des dix pings par perdre le reste, ce qui indique des problèmes de réseau. J'ai interprété votre question ne définit pas comment gérer ce scénario, mais, maintenant, après relecture, je suppose que tu dirais que c'est une réussite. C'est très bien si c'est vraiment ce que vous voulez, mais je voudrais utiliser un seul ping et voulez une alerte en cas d'échec.
  • merci pour la clarification, comment feriez-vous un seul ping?
  • Sur de nombreuses plates-formes, ping -c 1.

InformationsquelleAutor David542 | 2013-04-12