在工作中应组长要求,需检测公司所有服务器、虚拟机的10050端口是否开放,下面的脚本目前以用到实际的工作当中,在这里给大家分享出来,有需要改进的地方,还请大家积极留言,本人酌情接受
#!/bin/bash
# 检测Telnet端口的Shell脚本
# 输入参数:IP地址和端口号
Server_ip_list=$( cat ip.txt | awk '{print $1}' ) #所有的IP地址存放在ip.txt文件当中
Server_port=$1 #测试端口号
# 检查输入的IP地址是否有效
for i in $Server_ip_list #遍历服务器ip
do
echo "测试连接服务器端口$i $Server_port"
xz=`(sleep 1;) | telnet $i $Server_port|grep "]"|wc -l` #判断连通性命令
if [ $xz -eq 0 ]; #输出结果
then
echo "连接失败"
echo "服务器$i端口$Server_port连接失败" >> ./telnet_error.txt
else
echo "连接成功"
echo "服务器$i端口$Server_port连接成功" >> ./telnet_success.txt
fi
done
在这里解释一下
(sleep 1;) | telnet $i $Server_port|grep "]"|wc -l
sleep用来将目前动作延迟一段时间执行,默认单位秒。因为执行telnet命令不会自动退出的。这里的作用是停留1秒后退出命令模式,实现自动。并返回1
运行结果为