インターネットが復旧したときにコマンドを実行する方法

インターネットが復旧したときにコマンドを実行する方法

時々、Wi-Fi がルーターに接続されているのに、ルーターがインターネットに接続されていないことがあります。インターネットが復旧したときにコマンドを実行するにはどうすればよいでしょうか (コマンド ラインから)? 実行したいコマンド:

mpg123 /home/user/file.mp3

答え1

これを試して:

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

ping 応答がない場合、「インターネットなし」というメッセージが表示されます。応答があれば、コマンドを実行して終了します。

答え2

定期的に Web サイトに ping を実行し、ping が成功を返したときにコマンドを実行することができます。次のようになります...

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

関連情報