Escrito originalmente por Adon
El problema es que ahora, cuando le da se queda la conexión establecida pero ni envia ni recibe nada, y hay que desconectar y volver a conectar. Como lo dejo por la noche funcionando lo que busco es un programita de gestión de conexiones, que detecte que no hay tráfico en por ejemplo 5 minutos, y desconecte y vuelva a conectar...
En linux hay que abrir un poco la mente y, en ocasiones, es más fácil hacerse uno un script que perder el tiempo buscado una aplicación que haga algo que es trivial.
Veamos, ¿que harías ahora mismo para saber si te marcha internet? Posiblemente algo así de trivial:
# ping -c4 [url]www.google.com[/url]
Si google te responde, entonces no hay problema con tu moden. Si no te responde, tendrás que desconectar y volver a conectar (poff y pon, supongo que serán los comandos de conexión). Pues traducida la idea a script es así:
#!/bin/sh
CUANDO=`date`
if ping -c4 [url]www.google.com[/url] 2>&1 > /dev/null; then
echo "No hago nada" > /dev/null
else
echo "Error en la conexión detectado el $CUANDO" >> /var/log/infidelidades_del_modem.log
# Aquí a lo mejor hay que cortar algún programa
poff # Desconectamos
pon # Volvemos a conectar
# Y aquí volverlos a conectar
fi
Bien, esta tontería es el programa que buscabas. Además le hemos añadido la "feature" de que si se produce un problema te lo apunte en un archivo de log (infidelidades_del_modem.log). Así cuando tengas curiosidad puedes hacerle un cat al archivo y ver si te ha fallado durante la noche. Si además, al cortarse la conexión también se te queda tonto algún programa que depende de ella (por ejemplo, el mldonkey necesita saber tu IP. No sé exactamente que hace, pero a lo mejor calcula cuál es cuando arranca. Si cortas la conexión y la vuelves a efectuar y cambias de IP a lo mejor ya no funciona el mldonkey), antes de "poff" puedes parar ese programa. Y después de "pon" lo tendrás que arrancar de nuevo.
Te advierto que eso de poff y pon lo digo de oídas: yo nunca he usado modem: comprueba cuáles son tus script de conexión y desconexión.
Sólo falta que se ejecute cada cierto tiempo. Para ello está cron (ver man cron).
Pues nada, como root escribes para alterar tu crontab:
# crontab -e
y añades la tarea (p.e. cada cinco minutos):
*/5 * * * * /root/bin/infidelidades_del_modem.sh
He supuesto que el script lo has metido /root/bin y lo has llamado infidelidades_del_modem.sh