network-programming - 当站点(服务器)再次在线时通知我

标签 network-programming network-protocols

当我 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/

    相关文章:

    java - 如何指定要在 SSL session 中使用的密码套件

    sockets - 如果我在套接字上调用 `writev`,则完整响应是在内存中创建的,还是仅在客户端中创建的?

    google-analytics - Google Analytics 在标准 API 中使用什么协议(protocol)?

    python-3.x - "installing"开泰结构Python

    ios - 是否可以在 iOS 中获取移动数据 IP 地址? (不是服务提供商的公共(public) IP)

    java - 列表数组错误?

    c++ - 客户端和服务器示例不工作

    language-agnostic - 使用 HTTP/1.1 Pipelining 发出多个请求

    sockets - 心跳协议(protocol)/算法或最佳实践

    ios - 当 iOS 应用程序确实进入后台时,TCP 和 UDP(带多播)连接会发生什么