远程主机上的ping检查循环

时间:2018-08-15 02:06:52

标签: linux ping

我创建了一个脚本来监视远程主机是否在线。目标是让ping等待30秒,以查看服务器是否可用。

for i in $(cat /home/server-list.txt | awk '{print $1}')
do
if ping -c 1 -w 30 $i > /dev/null
then
  echo "Server UP"
else
  echo $i " -- $(date) -- Server DOWN" >> host-down.txt
fi
done

经过测试,我遇到了随机IP之一的问题。手动检查时,我发现2个IP对ping的响应不同。

在我的第一个示例中,ping按预期报告脱机主机。

ping -w 30 -c 1 198.201.230.34
PING 198.201.230.34 (198.201.230.34) 56(84) bytes of data.
--- 198.201.230.34 ping statistics ---
30 packets transmitted, 0 received, 100% packet loss, time 29233ms

但是在这种情况下,脚本会正确报告状态,但不想运行30秒。而且我注意到ping很快退出了

ping -w 30 -c 1 188.191.32.109
PING 188.191.32.109 (188.191.32.109) 56(84) bytes of data.
From 194.44.136.250 icmp_seq=1 Destination Host Unreachable
From 194.44.136.250 icmp_seq=2 Destination Host Unreachable
From 194.44.136.250 icmp_seq=3 Destination Host Unreachable
--- 188.191.32.109 ping statistics ---
4 packets transmitted, 0 received, +3 errors, 100% packet loss, time 3022ms
pipe 4

有什么办法可以解决这个问题?

0 个答案:

没有答案