我们的邮件服务器停止了在工作场所中侦听587的操作。
我们将其重新启动了两次,现在正在查看日志。
似乎我们松开了tcp连接,我想看看它何时发生,以便最终找到错误。
由于这个原因,我希望循环测试tcp连接是否打开,直到崩溃。我该如何实现?
这可靠吗?
while nc -z hostname port; do sleep 5; done
听起来,当我运行nc -z mail.gmail.com 587
和nc -z mail.gmail.com 588
时,它只会测试一次,而我没有得到每种情况下期望的错误代码。
答案 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