16
测试是否从Shell脚本打开了远程TCP端口
我正在寻找一种快速,简单的方法来从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 我或者需要一种更好的方法,或者是一种方法,例如如果telnet在不到8秒内没有连接,则强制telnet超时,然后返回我可以在Shell中捕获的内容(返回代码或stdout中的字符串)。 我知道Perl方法,该方法使用IO :: Socket :: INET模块并编写了成功的脚本来测试端口,但如果可能的话,希望避免使用Perl。 注意:这就是我的服务器正在运行的(我需要从中运行) …