Tengo problemas con WIFI en ubuntu. Intenté actualizar el sistema pero sigue igual. Lo que sucede es que de repente pierdo la conexión con mi enrutador y cuando presiono la barra de WIFI el sistema no detecta ningún AP que tenga que Desmarque la opción "habilitar WIFI", luego vuelva a verificarla para que funcione y se vuelva a conectar automáticamente.
Estoy pensando en hacer un script bash que detecte cuando la PC está desconectada del enrutador por cualquier motivo, y cuando esté desconectada deshabilite y luego habilite el wifi. Me refiero a automatizar el restablecimiento de la conexión, ¿es posible?
Supongo que debo usar esto.
nmcli nm wifi off
nmcli nm wifi on
pero ¿cómo puedo hacer que el script sepa si la PC está desconectada del WIFI?
Respuesta1
Es más sencillo de lo que crees:
#!/bin/bash
if ! [ "$(ping -c 1 google.com)" ]; then
nmcli nm wifi off
nmcli nm wifi on
fi
Luego puede usar un trabajo cron para que este script se ejecute cada minuto.
Respuesta2
Aunque la respuesta es correcta, hay que tener en cuenta que:
1) funcionará si el usuario ha iniciado sesión o no; este podría ser el comportamiento deseado o no, según la aplicación;
2) si la reconexión se demora más de 1 minuto, nunca llegarás...
Escribí un script simple que puedo ejecutar con los scripts iniciales de mi sesión gráfica y que puede ser un buen candidato. Redirijo su salida a un archivo para poder seguirlo con mi utilidad SLogger.
Aquí está el guión... nunca se sabe.
#!/bin/bash
while /bin/true; do
if ! [ "$(ping -c 1 google.com)" ]; then
echo "Warning: connection lost at $(date) -- restart"
nmcli nm wifi off
sleep 5
nmcli nm wifi on
sleep 60
if ! [ "$(ping -c 1 google.com)" ]; then
echo "Waiting for connection going up at $(date)"
sleep 60
else
echo "Connection on at $(date)"
fi
# else
# echo "Connection OK on $(date)"
fi
sleep 60
done