使用shell对端口批量telnet以及超时等待的解决方案

需求说明:

有时候我们需要对端口进行探测,检查网络是否通。一般大家都知道可以通过telnet进行操作,但是当需要对多个端口进行批量探测的时候,如果手动一个个进行telnet会很影响效率,通过shell脚本我们可以对telnet进行批量操作,但是会面临一个问题。当存在端口不通的情况下,shell进行telnet会进行长时间的等待大概是127秒。显然在自动化脚本中存在这样的问题是不可接受的。争对以上问题,我专门对网上不靠谱的批量脚本进行了重写。

使用方式:

bash telnetTest.sh /app/telnet_file.txt

执行结果说明:

执行结果会保留在你脚本所在路径的result.log文件中。保存的内容为失败的记录。

具体实现代码:

#!/bin/bash
telnet_file=${1}
result_tmp_file="result_tmp.log"
result_file="result.log"
sed -i 's/^M//g' ${telnet_file}
while read line
do
    ip_port="$(echo ${line} | awk '{print $1}') $(echo ${line} | awk '{print $2}')"
    echo quit | timeout --signal=9 2 telnet ${ip_port} >> ${result_tmp_file} 2>&1
    if [ `grep -c "Escape character is" result_tmp.log` -eq '0' ];then
        cat ${result_tmp_file} >> ${result_file}
    echo -e "---${ip_port}" >>  ${result_file}
    fi
    echo > ${result_tmp_file}
done < ${telnet_file};
rm -f ${result_tmp_file}

本文章只是auxt-shell项目中关于telnet功能的单独说明,了解和使用更多关于auxt-shell项目,你可以访问https://www.xyzbeta.com/81

本文系作者 @ 原创发布在 维简网。未经许可,禁止转载。

喜欢()
评论 (0)

请登录以参与评论。

现在登录…
热门搜索
16 文章
0 评论
20 喜欢
Top