我试图通过执行以下命令检测主机何时从重新启动中恢复:
ping -c 1 -W 1800 myhost
我希望在 30 分钟过去之前主机能够成功 ping,并且在我的脚本中我可以ssh
对主机采取一些动作。但是主机确实在过去 30 分钟之前启动,我可以通过ping myhost
从命令行手动运行来验证这一点,但ping -c 1 -W 1800 myhost
没有成功。它只是超时。
我的操作系统是:
$ uname -a
Linux dev-001 3.10.0-957.1.3.el7.x86_64 #1 SMP Thu Nov 15 17:36:42 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux
您的命令说的是发送一个数据包 (
-c 1
) 并等待长达 30 分钟的回复 (-W 1800
)。由于主机可能在您发送单个数据包时已关闭,因此不太可能发送响应,因此请
ping
等到达到最后期限并返回失败。不幸的是,没有简单的方法可以“
ping
直到成功”,所以你必须用一个循环来综合它。这个等待长达 1800 秒,每 5 秒发送一个 ping。