我怎样才能循环直到 IP:port 没有响应

How can I loop until IP:port is not responding

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

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

看来我们失去了 tcp 连接,我想看看它什么时候发生,这样我才能最终找到错误。

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

这个靠谱吗:

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

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

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

由于 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