Cómo ejecutar un comando cuando vuelve Internet

Cómo ejecutar un comando cuando vuelve Internet

A veces mi wifi está conectado al enrutador pero mi enrutador no está conectado a Internet. ¿Cómo puedo ejecutar un comando cuando mi Internet vuelva (desde la línea de comando)? Quiero ejecutar:

mpg123 /home/user/file.mp3

Respuesta1

Prueba esto:

#!/bin/bash
while :; do
    ping -c 1 8.8.8.8 >/dev/null 2>&1
    if [ $? = 0 ]; then
        break
    else
        echo 'No internet'
    fi
    sleep 1
done
mpg123 /home/user/file.mp3

Le mostrará el mensaje "no hay Internet" si no hay respuesta de ping. Y si recibe la respuesta, ejecutará su comando y saldrá.

Respuesta2

Puede hacer ping periódicamente a un sitio web y ejecutar su comando cuando el ping sea exitoso. Algo como lo siguiente...

result=1
while [ $result -ne 0 ]
do
   ping -c 1 www.google.com
   result=$?
   sleep 5
done
mpg123 /home/user/file.mp3

información relacionada