我如何循环直到IP:port没有响应

时间:2019-01-23 06:46:48

标签: linux bash networking port telnet

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

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

似乎我们松开了tcp连接,我想看看它何时发生,以便最终找到错误。

由于这个原因,我希望循环测试tcp连接是否打开,直到崩溃。我该如何实现?

这可靠吗?

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

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

1 个答案:

答案 0 :(得分: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