¿Hay una manera fácil de verificar la conectividad a Internet desde la consola? Estoy tratando de jugar en un script de shell. Parece que una idea es comprobar el código de respuesta HTTP para interpretar si la conexión a Internet funciona bien. Pero creo que debe haber una manera fácil sin la necesidad de revisar un sitio que nunca falla;)wget --spider http://www.google.co.in/
Editar: Parece que puede haber muchos factores que pueden examinarse individualmente, algo bueno. Mi intención en este momento es verificar si mi blog está caído. He configurado cron para verificarlo cada minuto. Para esto, estoy revisando el código de respuesta HTTP de wget --spider para mi blog. Si no es 200, me lo notifica (creo que esto será mejor que simplemente hacer ping, ya que el sitio puede estar bajo una gran carga y puede estar agotando el tiempo de espera o responder muy tarde). Ahora ayer, hubo algún problema con mi Internet. LAN estaba bien conectada pero no pude acceder a ningún sitio. Así que sigo recibiendo notificaciones ya que el script no pudo encontrar 200 en la respuesta de wget. Ahora quiero asegurarme de que me muestre una notificación cuando tenga conectividad a Internet.
Por lo tanto, verificar la conectividad de DNS y LAN es un poco exagerado para mí, ya que no tengo tanta necesidad específica de averiguar qué problema es. Entonces, ¿qué sugieres cómo lo hago?
Aquí está mi script para seguir revisando el tiempo de inactividad de mi blog:
#!/bin/bash
# Sending the output of the wget in a variable and not what wget fetches
RESULT=`wget --spider http://blog.ashfame.com 2>&1`
FLAG=0
# Traverse the string considering it as an array of words
for x in $RESULT; do
if [ "$x" = '200' ]; then
FLAG=1 # This means all good
fi
done
if [ $FLAG -eq '0' ]; then
# A good point is to check if the internet is working or not
# Check if we have internet connectivity by some other site
RESULT=`wget --spider http://www.facebook.com 2>&1`
for x in $RESULT; do
if [ "$x" = '200' ]; then
FLAG=1 # This means we do have internet connectivity and the blog is actually down
fi
done
if [ $FLAG -eq '1' ]; then
DISPLAY=:0 notify-send -t 2000 -i /home/ashfame/Dropbox/Ubuntu/icons/network-idle.png "Downtime Alert!" "http://blog.ashfame.com/ is down."
fi
fi
exit
De esta manera, debo verificar la conectividad a Internet solo cuando haya un problema con el código de respuesta de mi blog. Es un poco pesado (ya que no estoy usando ping) pero no debería dar ningún falso positivo. ¿Correcto? Además, ¿cómo puedo aleatorizar el ping a un sitio diferente cada vez, como Facebook, Google, Yahoo, etc.? También (estaba tratando de evitar cualquier E / S) puedo escribir en un archivo de registro mediante el cual puedo verificar el recuento de las comprobaciones de tiempo de inactividad y luego omita más controles hasta que el sitio esté inactivo o provoque controles más largos (10 minutos en lugar de cada minuto). ¿Qué piensas?