So führen Sie einen Befehl aus, wenn das Internet wieder verfügbar ist

So führen Sie einen Befehl aus, wenn das Internet wieder verfügbar ist

Manchmal ist mein WLAN mit dem Router verbunden, aber mein Router ist nicht mit dem Internet verbunden. Wie kann ich einen Befehl ausführen, wenn mein Internet wieder da ist (von der Befehlszeile aus)? Ich möchte Folgendes ausführen:

mpg123 /home/user/file.mp3

Antwort1

Versuche dies:

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

Wenn keine Ping-Antwort erfolgt, wird die Meldung „Kein Internet“ angezeigt. Wenn eine Antwort erfolgt, wird Ihr Befehl ausgeführt und das System beendet.

Antwort2

Sie können in regelmäßigen Abständen eine Website anpingen und Ihren Befehl ausführen, wenn der Ping erfolgreich ist. Etwa so:

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

verwandte Informationen