当我 ping 一个站点时,它返回“请求超时”。我想制作一个小程序,当这个服务器再次在线时,它会通知我(发出哔哔声或类似的声音)。不管是哪种语言。我认为它应该是非常简单的脚本,只有几行代码。那么怎么写呢?
最佳答案
ping 的一些实现允许您指定接收数据包后退出的条件:
在 Mac OS X 上,使用 ping -a -o $the_host
ping
将继续尝试(默认情况下)-a
表示收到数据包时发出哔哔声 -o
表示收到数据包时退出 在 Linux(至少是 Ubuntu)上,使用
ping -a -c 1 -w inf $the_host
-a
表示收到数据包时发出哔哔声 -c 1
指定退出前要发送的数据包数量(在本例中为 1)-w inf
指定无论如何 ping 退出的截止日期(在本例中为 Infinite)-c
和 -w
一起使用,-c
变成包数收到 退出前任何一个都可以链接以执行您的下一个命令,例如一出现就 ssh 进入服务器(中间有一个间隙以允许
sshd
实际启动):# ping -a -o $the_host && sleep 3 && ssh $the_host
关于network-programming - 当站点(服务器)再次在线时通知我,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2615807/