思路
linux系统中,通过nc命令机制访问,nc命令会尝试与服务器目标端口建立tcp连接,通过建链是否成功来判断端口当前是否可用,循环访问固定端口,并设置不同的超时时间,统计最后结果来判断服务器及端口的稳定性。
操作步骤
一.测试域名(指定端口号)的稳定性
如测试百度:主要用到这行代码
nc -v -z www.baidu.com 80

建链成功返回:

建链失败返回:

二.新建一个文件config,把待测试域名或IP 端口写在config文件里面,也可以同时测试多个

三.新建一个Shell脚本

#!/bin/bash rm -rf ./result.txt rm -rf ./2.txt rm -rf ./nc.log for((i=0;i<$1;i++)) #变量$1为循环扫描的次数 do cat ./config | while read line #config 为需要测试的域名或者IP地址 端口号 do nc -v -w $2 -z $line >> ./nc.log 2>&1 #执行命令并把结果重定向到nc.log中 if [ $? -eq 0 ] then echo $line:ok >> ./2.txt else echo $line:failed >> ./2.txt fi done echo `date +%Y`"-"`date +%m`"-"`date +%d`" "`date +%H`":"`date +%M`":"`date +%S` >> nc.log #在日志中加入时间戳,方便定位问题 sleep $3 #每次去扫描的时间间隔 done echo "demowss.happy968.com 30050:ok $(grep "demowss.happy968.com 30050:ok" 2.txt | wc -l)" >>result.txt #统计扫描成功次数 echo "demowss.happy968.com 30050:failed $(grep "demowss.happy968.com 30050:failed" 2.txt | wc -l)" >>result.txt #统计扫描失败次数
执行脚本./nc.sh 10000 1 2 (shell脚本执行时后面的参数都可设置)
四.全量日志,重定向到nc.log中

五.最后统计结果result.txt

六.最后测试数据:设置了三组数据

总结:
在linux环境中,通过nc命令去循环扫描端口可以快速,准确的对服务器及端口做稳定性测试,在shell脚本里设置了变量,在脚本执行的时候带上参数,让shell脚本更灵活。
