17 diciembre 2016

Reconexión WiFi automática en Raspberry Pi con aviso

Es posible que algunas veces nuestra Raspberry Pi pierda la conexión a la red WiFi a la que está conectada, bien sea porque el interfaz inalámbrico se haya colgado o porque el punto de acceso no está disponible. En el segundo caso poco podemos hacer, pero si se pierde la conexión vamos a tratar de que la Raspberry Pi se reconecte al punto de acceso y nos avise de ello. Para eso vamos a crear un script que se ejecute cada 5 minutos y compruebe que el punto de acceso sigue disponible, si no lo está, reiniciará el interfaz inalámbrico y nos enviará un correo.

Creamos el script Wifi-reinicia.sh en la siguiente ubicación /usr/local/bin:
 sudo nano /usr/local/bin/Wifi-reinicia.sh
Con el siguiente contenido que explicamos a continuación:
#!/bin/bash

SERVER=192.168.1.1
ping -c2 ${SERVER} > /dev/null
if [ $? != 0 ]
then
   ifdown --force wlan0
   ifup wlan0
   sleep 120
   sudo /home/pi/mailIPwifi
fi
Necesitamos saber que la Raspberry Pi está conectada a la red, para eso hacemos ping a un servidor, 192.168.1.1, la dirección IP de nuestro router en este caso, si no obtiene respuesta entonces reiniciará el interfaz inalámbrico y después de 2 minutos nos enviará un correo avisándonos de que se ha reconectado.
Lo guardamos y le damos permisos de ejecución:
sudo chmod +x /usr/local/bin/Wifi-reinicia.sh
Como ya tenemos el servidor de correo instalado vamos a crear el mensaje que nos llegará al correo:
sudo nano mailIPwifi
Y pegamos lo siguiente, donde YOURMAIL, es la dirección donde queremos recibir el correo de aviso::
 #!/bin/sh
 mailreciever=YOURMAIL
 today=$(date)
 my_ip=`wget -q -O - checkip.dyndns.org|sed -e 's/.*Current IP Address: //' -e 's/<.*$//'`
 my_pi="El WiFi de la Raspberry Pi se ha reinicado!! "
 message="El WiFi de la Raspberry Pi se ha reiniciado el $today. Dirección IP = $my_ip"
 echo $message > message.txt
 mutt -s "${my_pi}" ${mailreciever} < message.txt
Lo guardamos y le damos permisos de ejecución:
sudo chmod +x mailIPwifi
Para que el script se ejecute automáticamente vamos a añadir una tarea a cron:
sudo nano /etc/crontab
Y antes del último #, añadimos la siguiente linea. Así el script de reconexión se ejecutará cada 5 minutos:
 */5 * * * * root /usr/local/bin/Wifi-reinicia.sh
Para probarlo bastará con tirar abajo el interfaz inalámbrico, en un rato se reconectará automáticamente a nuestra red WiFi y nos enviará el correo de aviso.
ifdown --force wlan0
Instrucciones tomadas de este post.

Comparte este post con tus amigos!

Compartir en Facebook Compartir en Google+ Compartir en Twitter Compartir en Pinterest Compartir en LikedinCompartir en WhatsAppCompartir en Telegram

0 comentarios:

Comparte tu opinión con los demás, deja un comentario. ↓

Los comentarios no son moderados, sin embargo si contienen insultos o son ofensivos, pueden ser borrados.

 

©2011 Trasteando con Raspberry Licencia de Creative Commons
Este obra está bajo una licencia de Creative Commons Reconocimiento-NoComercial 4.0 Internacional.
Creado a partir de la obra en Trasteando con Raspberry. | FuuTheme diseñado por Fuutec | Ir arriba ↑