我想写一个脚本,它会不断检查网络中应该整天在线的任何设备是否真的在线。我尝试使用 ping,但是

if [ "`ping -c 1 some_ip_here`" ]
then
  echo 1
else
  echo 0
fi

无论我输入有效还是无效的 IP 地址,都会给出 1。如何检查特定地址(或更好的 IP 地址列表中的任何设备)是否脱机?

最佳答案

Ping 根据错误类型返回不同的退出代码。

ping 256.256.256.256 ; echo $?
# 68

ping -c 1 127.0.0.1 ; echo $?
# 0

ping -c 1 192.168.1.5 ; echo $?
# 2

0 表示主机可达

2 表示无法访问

关于bash - 通过在 bash 脚本中使用 ping 检查主机可用性,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/18123211/

10-14 04:58