21 de noviembre de 2009

wifi guardian script

De vez en cuando, sin saber como ni por qué se pierde la conexión wifi y no se reconecta.
En un servidor sin teclado ni pantalla esto es un problema ya que se pierde la conexion totalmente y no hay manera de acceder.

He hecho un sencillo script que comprueba la conexion a internet y reconfigura la conexion wifi si esta caida.


Hace un ping a www.google.com, y si NO hay respuesta reinicia las red y deja una entrada en un log de seguimeinto.

El script:

#!/bin/bash
PING=`ping -c 1 www.google.com|grep "64 bytes from"`
if [ -z "$PING" ]
then
/etc/init.d/networking restart
echo "Network restart on date" >> /var/log/pp-wifiguardian.log
date >> /var/log/pp-wifiguardian.log
fi

Lo he puesto en /etc/init.d/pp-wifiguardian.sh

Ahora hecemos que lo ejecute el demonio cron
para ello editamos el archivo /etc/crontab indicando la frecuencia que queramos que se ejecute. Como agregar tareas al Cron de Linux

Cada minuto (solo para probar ...)

# m h dom mon dow user command
* * * * * root /etc/init.d/pp-wifiguardian.sh > /dev/null


Cada hora, con esto creo que es suficiente control ...
# m h dom mon dow user command
0 * * * * root /etc/init.d/pp-wifiguardian.sh > /dev/null


pero si quisieramos que se ejecute cada media hora:
# m h dom mon dow user command
0,30 * * * * root /etc/init.d/pp-wifiguardian.sh > /dev/null


y reiniciamos cron
#/etc/init.d/cron restart
Para ver que se esta ejecutando correctamente y a su hora podemos consultar syslog

micra:~# tail /var/log/syslog
Nov 21 20:23:01 micra /USR/SBIN/CRON[5735]: (root) CMD ( /etc/init.d/pp-wifiguardian.sh > /dev/null^I)
Nov 21 20:24:01 micra /USR/SBIN/CRON[5743]: (root) CMD ( /etc/init.d/pp-wifiguardian.sh > /dev/null^I)
Nov 21 20:25:01 micra /USR/SBIN/CRON[5752]: (root) CMD ( /etc/init.d/pp-wifiguardian.sh > /dev/null^I)
Nov 21 20:26:01 micra /USR/SBIN/CRON[5760]: (root) CMD ( /etc/init.d/pp-wifiguardian.sh > /dev/null^I)

Ref:.
cron (Unix)


No hay comentarios:

Publicar un comentario