Un pequeño script para chequear la conexión a internet

October 26, 2005 at 13:10

¡Pues eso mismo! más descriptivo no puedo ser, ¿no? Ultimamente me conecto mucho a la wifi de la UPM, y ocurre que la autenticación para disponer de salida a internet se hace vía web y expira cada cierto tiempo (supongo que precisamente para evitar usos como el que yo le doy :-P), lo que hace que, si no estás usando internet de forma activa (es decir, si lo único que está usando internet en ese momento es un programa de, pongamos un ejemplo cualquiera, P2P, :-P), no te enteres y desperdicies un valioso tiempo de conexión. Para solucionarlo he hecho un chorra-script de los míos, que hace que cada vez que te quedes sin conexión, lanze un aviso auditivo. De esta manera puedo cerrar la pantalla del portatil tranquilamente, estar a lo mío, y enterarme cada vez que pierdo la conexión. Aquí va:


#!/bin/bash
# check_inet_connection - Checks iteratively if we have internet connection
# and alert if not
# Requirements - Wav player
# Diego Toharia

# Variables (time in seconds)
SITE=rediris.es
PLAYER=esdplay
SOUND=/usr/share/sounds/ding.wav
TIME=10

# Verify connection

while [[ 0 ]]
do
ping -c 2 $SITE > /dev/null 2> /dev/null || $PLAYER $SOUND
sleep $TIME
done &
exit 0

En mi caso, he puesto un intervalo muy corto entre cada vez que se verifica que disponemos de conexión. No obstante, para un uso más general se puede poner un minuto, por ejemplo. Así mismo, debeis especificar qué reproductor de archivos wav usais, y que sonido quereis que se reproduzca. Yo tengo puesto que se ejecute al iniciar mi sesión de gnome, (ya sabeis, menú de “inicio” -> sistema -> preferencias -> sesiones -> Programas al inicio), por eso de que uso esd, pero también lo podeis poner al inicio del sistema, aunque entonces quedaría como:


#!/bin/bash
# check_inet_connection - Checks iteratively if we have internet connection
# and alert if not
# Requirements - Wav player
# Diego Toharia

# Variables (time in seconds)
SITE=rediris.es
PLAYER=esdplay
SOUND=/usr/share/sounds/ding.wav
TIME=10

case "$1" in
start|restart|force-reload|reload)
while [[ 0 ]]
do
ping -c 2 $SITE > /dev/null 2> /dev/null || $PLAYER $SOUND
sleep $TIME
done &
;;
stop)
;;
*)
log_success_msg "Usage: /etc/init.d/ntpdate {start|stop|restart|reload|force-reloa$ exit 1
esac

exit 0

más o menos (habría que hacer algo en el stop, pero eso os lo dejo a vosotros ;-). Pues nada más.. ¡anda! ¡acaba de pitar, no tengo conexión! ¡Funciona! ¡Eureka! esto… nada más.

Technorati Tags: