如何使用终端每 60 秒连续 ping 一次计算机,如果没有 ping 响应则发出警报

如何使用终端每 60 秒连续 ping 一次计算机,如果没有 ping 响应则发出警报

我如何使用终端连续每 60 秒 ping 一次计算机,如果没有 ping 响应,则每 1 秒 ping 一次,如果 5 次一秒 ping 后仍然没有响应,则发出警报并继续每秒 ping 一次(不发出另一个警报)直到我收到响应,然后切换回每 60 秒 ping 一次。

我还想看到一个计数数字,这样我就能知道自从我输入命令以来,我进行了多少次成功的 ping,就像我执行正常的“ping ip”一样。

目前正在使用这个命令,它很接近,但我想要更多。我从本网站的另一篇文章中找到/改编了这个命令。

while :; do ping -t 2 -c 1 $1192.168.1.100 || open alarm.m4a; sleep 60; done

答案1

ip=192.168.1.100
while :; do
  ping $ip || {
    for i in {1..5}; do ping $ip && continue 2; sleep 1; done
    afplay alarm.m4a
    while sleep 1; do ping $ip && break; done
  }
  sleep 60
done

相关内容