¿Cómo puedo verificar periódicamente si mi networking está activa y reconectar si no?

He escrito una secuencia de commands para verificar periódicamente si mi networking está activa haciendo ping en tres sitios principales y desconectando y luego reconectando mi networking si fallan las tres. Esta secuencia de commands funciona bien desde la command-line, incluso si no tengo una session X. El script se ve así:

#!/bin/bash /usr/bin/notify-send -i 'dialog-information' 'Running CheckNetUp.sh' 'Checking whether network is up' AtLeastOneSiteFound=false; # Try to download three sites and indicate a site was found if they work # as long as we can grab at least one site, we're good. # Otherwise, we'll disconnect and reconnect. /usr/bin/wget --spider --read-timeout=15 http://google.ca if [ "$?" = 0 ]; then AtLeastOneSiteFound=true; fi /usr/bin/wget --spider --read-timeout=15 http://facebook.com if [ "$?" = 0 ]; then AtLeastOneSiteFound=true; fi /usr/bin/wget --spider --read-timeout=15 http://wikipedia.org if [ "$?" = 0 ]; then AtLeastOneSiteFound=true; fi if [ "$AtLeastOneSiteFound" = false ]; then # Disconnect my wifi (and, consequently, VPN) /usr/bin/nmcli dev disconnect wlp0s20u2 # Bring my wifi up /usr/bin/nmcli con up uuid e23f4af0-7411-4f4e-8d3c-a7cd35b607e1 # Bring my VPN up /usr/bin/nmcli con up uuid 6b0f8740-df8e-411e-adeb-bcf70ced772f fi 

Aquí está el problema: el script falla en cron con este post de error cuando intenta mostrar el wifi:

 Error: Connection activation failed: Not authorized to control networking. 

He encontrado muchas soluciones potenciales en línea, pero hasta ahora no he tenido suerte. Lo más prometedor parecía hacer que las conexiones del sistema de conexiones wifi y VPN fueran accesibles para todos los usuarios con las passwords en la configuration de text, pero eso no cambiaba nada.

EDITAR: El script se ejecuta bajo mi usuario tanto en el crontab como cuando se ejecuta manualmente.

¿Wifi?

Puede hacer ping a su propio enrutador en lugar de "sitios importantes", siempre hay una pequeña posibilidad de que la connection siga cayendo en algún lugar de su extremo en lugar de los serveres de dominio o enrutadores de su ISP. Como de hecho, el enfoque del script es excelente, ¿sigues navegando por el lado de la LAN con un intervalo cada vez mayor y ves cuánto time tarda la connection en caer? Si su LAN permanece activa durante más time de lo que considera en definitiva, ENTONCES solo entonces considere hacer ping al lado de la WAN. Sin embargo, recomendaría replace nombres de host con direcciones IP, para hacer ping repetidamente en los innumerables enrutadores de Internet (lo cual debería estar bien) en lugar de un server DNS de Internet específico (que el administrador no puede aceptar).

El hecho de que su connection a Internet siga cayendo puede tener que ver con sus scripts, su wget-to accedo a resources acelerados? Luego su administración de energía en el BIOS (realmente no estoy seguro de cómo esto afecta su núcleo actual), y finalmente, la respuesta de su ISP a sus problemas. Una vez más, ni siquiera en mis sueños de vigilia consideraría Wi-Fi para mostrarme problemas de connection a Internet.

Conéctese mediante cobre o fibra y repita la publicación.