标签:执行 oar 连接状态 get false net 衡量 网络测试 alt
host_addr="192.168.234.231" conn_num=0 timeout=3 # 设定等待时间 until [ $conn_num -gt 1 ]; do # 此处的1可以改写,用来衡量网络稳定系数 conn_num=$(ping -c 4 -w $timeout $host_addr | grep icmp_seq | wc -l) sleep 5.0 # 等待网络调整,或者执行其他动作 done
1. 通过 netcat 工具
2. 利用 wget 测试
3. 利用 telnet 检测
当远程设备的端口未开启时,命令会自动退出:
但当远程设备端口开启时,telnet 会进入连接模式,需要键入 ‘^]‘ 指令退出:
在脚本编程中,如何优雅的退出 telnet 命令?
输出结果后立即退出
$ echo "" | telnet 101.199.97.65 8022 Trying 101.199.97.65... Connected to 101.199.97.65. #已成功连通端口 Escape character is ‘^]‘. Connection closed by foreign host. # 自动退出
输出结果后延迟退出
$ sleep 0.1 | telnet 101.199.97.65 8022
脚本如何判断 telnet 的执行结果?
sleep 0.1 | telnet 10.10.70.138 5900 | grep Connected | wc -l
通过上述命令,如存在Connected关键字,则wc计数为1,否则为0,来判断端口是否连接成功。
另外,实践中发现,telnet不会检测网络连接状态。所以最好在检测端口前,先通过ping指令确认网络能够连接,再测试端口。
综上,提供脚本实例:
function try_host_port { host_addr="192.168.234.231" port=5900 local timeout=3 # 设定等待时间 conn_num=$(ping -c 4 -w $timeout $host_addr | grep icmp_seq | wc -l) if [ $conn_num -lt 1 ]; then # 此处的1可以改写,用来衡量网络稳定系数 echo "False" return 1 fi # 验证VNC端口,并等待端口开启 local port_status=0 until [ $port_status -eq 1 ]; do port_status=$(sleep 1 | telnet ${host_addr} ${port} | grep Connected | wc -l) sleep 1 # 轮询周期 done }
标签:执行 oar 连接状态 get false net 衡量 网络测试 alt
原文地址:https://www.cnblogs.com/brt3/p/10114275.html