linux - 如何循环直到 IP :port is not responding

标签 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 时测试一次 我不知道没有得到我期望的每种情况的错误代码。

最佳答案

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

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

关于linux - 如何循环直到 IP :port is not responding,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54321431/

相关文章:

linux - 如何在使用 sed 的模式之后删除文件末尾之前的所有内容?

c - Bash 一个 liner 来编译、执行和回显返回值?

c++ - "- </dev/null"中的 "gcc -dM -E - </dev/null"是什么意思?

c++ - 将静态库链接到共享库?

linux - Vim - 强制行之间有额外的间距以添加下划线

macos - 在 OS X 上使用 Bash 命令生成文件 ifeq

sql - Oracle - 为什么 SELECT * FROM Foo;太慢了?

networking - 数据传输中的 htons & ntohl

linux - 如何在 Linux 中获取网络掩码

c - recv() 错误 C/C++ 套接字编程