【SHELL编程】shell脚本批量验证主机某端口开放

从文件中读取SERVER_IP之后使用telnet遍历指定端口,批量验证22端口是否开放。

我的ip.txt文件里面有2列,是IP和PORT的形式,所以使用管道符配合awk截取下第一列内容,要是纯IP列表不要后面也行。

#!/bin/bash
ser_ip_list=`cat ip.txt|awk '{print $1}'` # 指定ip列表
ser_port=22 # 指定端口

for ser_ip in $ser_ip_list #获得IP
do
    echo "测试连接 $ser_ip 的 $ser_port 端口"
	$rs=`(sleep 1)|telnet $ser_ip $ser_port | grep "]" | wc -l ` 
	#统计]的个数,联通了只有他一个,返回1,用于判断
	if [[ $rs -eq 0 ]]; 
	then
		echo "$ser_ip $ser_port 端口连接失败";echo "$ser_ip $ser_port 端口连接失败" >> result_telnet.txt
	else
	    echo "$ser_ip $ser_port 端口连接成功";echo "$ser_ip $ser_port 端口连接成功" >> result_telnet.txt
	fi
done

补充:

ping 使用 icmp 协议
tracert 默认使用 icmp 协议,可以参数指定其他协议如【-T】使用tcp协议
telnet 默认是用 tcp 协议


版权声明:本文为weixin_42742658原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。