【问题标题】:How can I loop until IP:port is not responding如何循环直到 IP:port 没有响应
【发布时间】:2019-06-16 16:48:26
【问题描述】:

我们的邮件服务器停止收听我们工作场所的 587。

我们重新启动了两次,现在正在查看日志。

似乎我们失去了 tcp 连接,我想看看它什么时候发生,这样我才能最终解决错误。

出于这个原因,我希望循环测试 tcp 连接是否打开,直到它崩溃。我怎样才能做到这一点?

这可靠吗:

while nc -z hostname port; do sleep 5; done

听起来它只会在我运行 nc -z mail.gmail.com 587nc -z mail.gmail.com 588 时测试一次。我没有得到我所期望的每种情况的错误代码。

【问题讨论】:

  • 我已经编辑了问题,可以投反对票,投赞成票吗?

标签: linux bash networking port telnet


【解决方案1】:

我不确定我是否完全理解您的要求,但希望这就是您的意思!

由于 google.com 我没有失败,我建议断开您的互联网进行测试。 使用你的 IP 而不是 google.com 和你的端口而不是 80。

#!/bin/bash
for i in `seq 1 10`;
do
        nc -z -w 1 google.com 80 &> /dev/null
        if [ $? -eq 0 ]; then
            echo OK
        else
            echo FAIL
        fi
done

【讨论】:

  • nc -z smtp.gmail.com 588nc -z smtp.gmail.com 587 同时保持连接,我注意到如果这是在循环中直到它失败但它看起来不像它
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-01-31
  • 2019-06-28
相关资源
最近更新 更多