Como executar um comando quando a internet está de volta

1

Às vezes, meu wifi está conectado ao roteador, mas meu roteador não está conectado à internet. Como posso executar um comando quando minha internet está de volta (da linha de comando)? Eu quero executar:

mpg123 /home/user/file.mp3
    
por jcubic 19.05.2016 / 14:45

2 respostas

3

Tente isto:

#!/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

Ele mostrará a mensagem 'sem internet' se não houver resposta de ping. E se receber a resposta, ele executará seu comando e sairá.

    
por 19.05.2016 / 15:04
1

Você pode fazer ping periodicamente em um site e executar seu comando quando o ping retornar sucesso. Algo como o seguinte ...

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