Linux 下要检查网络连线的工具有很多, 以下是用 Shell Script 检查网络连线的方法。
最简单的方法是用 ping 指令, 尝试 ping google.com, 这样除了测试网络连线外, 也一同测试 DNS:
|
1 2 3 4 5 6 7 |
#!/usr/bin/sh if ping -q -c 1 -W 1 google.com >/dev/null; then echo "Network is up" else echo "Network is down" fi |
执行上面的 Shell Script 后, 当网络连线及 DNS 正常, 会输出 “Network is up”; 不正常败会输出 “Network is down”.
如果防火墙将 ping 封锁了, 可以用 curl 测试连线, 写法如下:
|
1 2 3 4 5 6 7 |
#!/usr/bin/sh case "$(curl -s --max-time 2 -I http://google.com | sed 's/^[^ ]* *\([0-9]\).*/\1/; 1q')" in [23]) echo "Network is up";; 5) echo "Web proxy blocked connection";; *) echo "Network is down or very slow";; esac |