不特定の期間中にインターネット接続の状態を確認してください。

不特定の期間中にインターネット接続の状態を確認してください。

いくつかの要因によって切断が発生する可能性があり、常にイーサネットを使用しないか、常に利用できないため(Wi-Fiを使用しているため)、いつまたは少なくとも確認したかったのです。どのくらい未知の時間中にインターネット接続が失われました。

私が最も知りたいのは、接続を維持する必要があるため、プロセス/作業が停止/失敗した瞬間を見ずに、いつ接続が切断されるのかを知るのがより役に立ちます。

だからpingを基本にしてみました。

#!/bin/sh
retryme() {
while ! "$@"
do
  echo "not_working -> $(date)"
done
}

retryme ping google.com

ping問題は、実際の開始と実際のpingの間にわずかな6〜5秒の遅延があることですping。 (該当フラグを使用すると遅延が約1秒程度減るが-A

これに加えて、次の場合を除き、接続が切断されたときにのみ出力(希望の効果)のみが表示されます。

#!/bin/sh -x
retryme() {
while ! "$@"
do
  echo "not_working -> $(date)"
done
}

pingme() {
ping -A google.com &>/dev/null
}

retryme pingme

ところで、再試行機能を使用せずにインターネット接続が切断され、「再試行」をすると停止します。

もっと良い方法がありますか?おそらくping以外のものを使用することもできます(POSIX、bash、および/または他のLinuxツールを好む)。

ベストアンサー1

次のように動作するようです。

#!/bin/sh
retryme() {
while ! "$@"
do
  echo "not_working -> $(date)"
done
}

pingme() {
ping -A -W 1 8.8.8.8 &>/dev/null
}

retryme pingme

おすすめ記事