「インターネット接続チェックリストライン」

「インターネット接続チェックリストライン」

これにより、「インターネット接続」があることを確認できます。 「インターネット接続」がない場合(この2つの場所に正常にpingされた)、600秒待ってから続行します。

ping -W 1 -c 4 www.google.com >& /dev/null && ping -W 1 -c 4 www.yahoo.com >& /dev/null || sleep 600

しかし、インターネットに接続するまで繰り返されるように、この行をどのように書き換えることができますか?

ベストアンサー1

while ! ping -W 1 -c 4 www.google.com >& /dev/null ||
      ! ping -W 1 -c 4 www.yahoo.com >& /dev/null; do
  sleep 600
done

IPアドレスへの接続をテストしていますが、8.8.8.8はGoogleのパブリックDNSサーバーです(非常に可用性が高い)。エントリがキャッシュにある可能性があるため、DNSが機能しているかどうかをテストするのはとにかく信頼できません。

while ! ping -W 1 -c 1 8.8.8.8 >&/dev/null; do sleep 600; done

Pingが常にインターネット接続を確認する最善の方法ではありません。多くの場所、特に企業ネットワークでは、Webアクセスを除くすべてのアクセスをブロックします。高可用性サーバーからファイルをダウンロードして、ネットワークが正常に動作しているかどうかをテストできます。また、少なくともHTTPプロキシの観点からDNSをテストします(しばしば重要です)。

while ! wget -q -O /dev/null --no-cache http://www.google.com/; do sleep 6000; done

おすすめ記事