我正在寻找一种快速而简单的方法,用于在Shell脚本内部正确测试远程服务器上的给定TCP端口是否打开.
我已经设法使用telnet命令,并且它在端口打开时工作正常,但它似乎没有超时,当它不是,只是挂在那里...
这是一个示例:
l_TELNET=`echo "quit" | telnet $SERVER $PORT | grep "Escape character is"`
if [ "$?" -ne 0 ]; then
echo "Connection to $SERVER on port $PORT failed"
exit 1
else
echo "Connection to $SERVER on port $PORT succeeded"
exit 0
fi
Run Code Online (Sandbox Code Playgroud)
我要么需要一个更好的办法,还是有办法来强制远程登录超时如果它没有下8秒连接,例如,和(在标准输出返回码,或字符串)返回的东西我可以赶上壳.
我知道Perl方法,它使用IO :: Socket :: INET模块并编写了一个测试端口的成功脚本,但是如果可能的话,我宁愿避免使用Perl.
注意:这是我的服务器运行的地方(我需要从中运行它)
SunOS 5.10 Generic_139556-08 i86pc i386 i86pc