我们的邮件服务器停止监听我们工作场所的 587。
我们重启了两次,现在正在查看日志。
我们似乎松开了 tcp 连接,我想看看它何时发生,以便我最终找到错误。
出于这个原因,我希望在循环中测试 tcp 连接是否打开,直到它崩溃。我怎样才能做到这一点?
这个可靠吗:
while nc -z hostname port; do sleep 5; done
听起来它只会在我运行 nc -z mail.gmail.com 587
和 nc -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/