Lan*_*nes 5 linux shell networking ping
有了这个,我可以检查是否有“互联网连接”。如果没有“互联网连接”(成功 ping 到这 2 个地方),则等待 600 秒,然后继续运行:
ping -W 1 -c 4 www.google.com >& /dev/null && ping -W 1 -c 4 www.yahoo.com >& /dev/null || sleep 600
Run Code Online (Sandbox Code Playgroud)
但是:我怎么能重写这一行,让它循环直到有互联网连接?
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
Run Code Online (Sandbox Code Playgroud)
虽然我只是测试与 IP 地址的连接性;8.8.8.8 是 Google 的公共 DNS 服务器(它具有非常高的可用性)。无论如何测试 DNS 是否工作是不可靠的,因为条目可能在缓存中。
while ! ping -W 1 -c 1 8.8.8.8 >&/dev/null; do sleep 600; done
Run Code Online (Sandbox Code Playgroud)
Ping 并不总是检查互联网连接的最佳方式。许多地方(尤其是企业网络)会阻止除 Web 访问之外的所有内容。您可以通过从高可用性服务器下载文件来测试 Web 是否正常工作。这也测试了 DNS,至少从 HTTP 代理的角度来看(这通常也是重要的)。
while ! wget -q -O /dev/null --no-cache http://www.google.com/; do sleep 6000; done
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5538 次 |
| 最近记录: |