Existe-t-il un moyen simple de vérifier la connectivité Internet depuis la console ? J'essaie de jouer dans un script shell. Une idée que j'ai est d'utiliser wget --spider [http://www.google.co.in/](http://www.google.co.in/)
et de vérifier le code de réponse HTTP pour interpréter si la connexion Internet fonctionne correctement. Mais je pense qu'il doit y avoir un moyen plus simple sans avoir besoin de vérifier un site qui ne plante jamais ;)
Éditer : Il semble qu'il y ait beaucoup de facteurs qui peuvent être examinés individuellement, c'est une bonne chose. Mon intention pour le moment est de vérifier si mon blog est en panne. J'ai configuré une tâche cron pour vérifier cela toutes les minutes. Pour cela, je vérifie le code de réponse HTTP de wget --spider pour mon blog. Si ce n'est pas 200, il me notifie (je crois que ce sera mieux que de simplement le pinguer, car le site peut être sous une charge importante et peut être en train de temporiser ou de répondre très tard). Hier, il y avait un problème avec mon Internet. Le LAN était connecté correctement mais je ne pouvais tout simplement pas accéder à aucun site. Donc je continue de recevoir des notifications car le script ne pouvait pas trouver 200 dans la réponse de wget. Maintenant je veux m'assurer qu'il m'affiche une notification lorsque j'ai une connectivité Internet.
Donc, vérifier la connectivité DNS et LAN est un peu excessif pour moi car je n'ai pas vraiment besoin de savoir quel est le problème. Alors que suggérez-vous comment je peux le faire ?
Voici mon script pour continuer à vérifier les temps d'arrêt pour mon blog :
#!/bin/bash
# Envoyer la sortie de wget dans une variable et non ce que fetches wget
RESULT=`wget --spider http://blog.ashfame.com 2>&1`
FLAG=0
# Parcourir la chaîne en la considérant comme un tableau de mots
for x in $RESULT; do
if [ "$x" = '200' ]; then
FLAG=1 # Cela signifie tout va bien
fi
done
if [ $FLAG -eq '0' ]; then
# Un bon point est de vérifier si Internet fonctionne ou non
# Vérifier si nous avons une connectivité Internet par un autre site
RESULT=`wget --spider http://www.facebook.com 2>&1`
for x in $RESULT; do
if [ "$x" = '200' ]; then
FLAG=1 # Cela signifie que nous avons une connectivité Internet et que le blog est effectivement en panne
fi
done
if [ $FLAG -eq '1' ]; then
DISPLAY=:0 notify-send -t 2000 -i /home/ashfame/Dropbox/Ubuntu/icons/network-idle.png "Alerte de temps d'arrêt !" "http://blog.ashfame.com/ est en panne."
fi
fi
exit
Ainsi, je n'ai besoin de vérifier la connectivité Internet que là où il y a un problème avec le code de réponse de mon blog. C'est un peu lourd (car je n'utilise pas ping) mais ne devrait pas donner de faux positifs. N'est-ce pas ? De plus, comment puis-je randomiser les pings vers un site différent à chaque fois, comme facebook, google, yahoo, etc. De plus (j'essayais d'éviter toute E/S) je peux écrire dans un fichier journal par lequel je peux vérifier le nombre de vérifications des temps d'arrêt et ensuite sauter les vérifications ultérieures jusqu'à ce que le site soit en panne ou provoque des vérifications plus longues (10 minutes au lieu de chaque minute). Qu'en pensez-vous ?