lunes, 21 de mayo de 2018

Script para comprobar y reiniciar driver de la wifi en caso de cuelgue

He comprado hace poco un dispositivo WiFi a puerto USB que funciona con el driver 88x2bu del realtek. Aunque es bastante estable, no está incluido en el kernel, y el módulo va compilado vía dkms. En algún momento el driver me casca, así que he tenido que prepararme un script para reiniciarlo en esos casos:


#!/bin/sh

# Este script debe ser ejecutado como root para que funcione
echo $(date): Iniciamos Script. Iniciaremos comprobaciones \

en 60 segundos para darle tiempo a la wifi a arrancar
sleep 60
echo $(date): Empezamos
while [ 1 ] ; do
echo $(date): Iniciamos comprobación...
if  !( ping -c 20 -W 30 192.168.10.1 &> /dev/null)  &&  !( ping -c 20 -W 30 192.168.10.2 &> /dev/null)
then
    echo $(date): No tenemos acceso a la red. ¿El driver habrá cascado?
    echo $(date): Reinicio driver
    rmmod 88x2bu && modprobe 88x2bu
    ((suma++))
    sleep 20
    echo $(date): $suma fallo. A los 5 salimos 
    if [ $suma -eq 5 ]
    then
        echo $(date): No hay red. Salimos
        exit 1
    fi
else
    suma=0
    echo $(date): La red funciona
    sleep 60
   
fi

done




192.168.10.1 y 192.168.10.2 son dos dispositivos que tengo conectados siempre en mi casa. Cambialos por los que tu desees.












No hay comentarios:

Publicar un comentario