shell tcping 端口,ping网段所有ip端口或tcping指定IP端口

2020-09-22 17:49:57 浏览数 (1)

代码语言:javascript复制
#!/bin/bash
################# 切换为阿里云yum 源 #################
yum install -y wget
cd /etc/yum.repos.d/
mkdir bak
mv * bak
wget http://mirrors.aliyun.com/repo/Centos-7.repo
wget http://mirrors.aliyun.com/repo/epel-7.repo
                                                        # 移动两个文件到 目录
yum clean all                                   # 清除原有缓存
yum makecache                           # 生成新的缓存
                                                        # make cache [meɪk]  [kaʃ]  制作 缓存{ka xi}
yum  list                                       # 校验yum
yum install -y tcping                   # 安装tcping 端口连通性测试工具
################# IP 端口连通性测试 #################
#!/bin/bash
ipw(){                                                          # warehouse [ˈwɛːhaʊs] 仓库; 定义函数一个方法此处是手动输入IP
ip=(
192.168.1.1
192.168.1.2
192.168.1.3
)
}
                                                                        # ip放出来才执行
ipd(){                                                                  # Segment [ˈsɛɡ m(ə)n t] 段落。ip段;    定义IP段函数
ipSegment=192.168.1
for((i=1;i<=254;i  ));do                                                # 将for打印的信息存入数组变量 ip
ip[$c]=`echo "$ipSegment.$i"  `
  ((c  ))
done
}
CStcping(){
ipd
ip=${ip[*]}
echo "所有 IP:" $ip"所有 IP 打印结束!"
port=22
gs=${#ip[*]}
echo "IP个数为:$gs"
for((i=0;i<=$gs;i  ))
do
        tcping -t3 ${ip[$i]} $port &>/dev/null                                  # tcping -t3 单个IP等待时间2秒;用循环来数数,数组ip 的角标  第一次for循环${ip[$1]}  第二次 ${ip[$2]}
        if [ $? -eq 0 ]; then                                                           # $? 获取上一条命令执行的状态,正确执行返回 0 ; 错误执行返回2
        echo ${ip[$i]} "该IP正常ping通端口: $port "
        else
                echo "ping端口:$port                              ==> 失败  ${ip[$i]}"
        fi
done
}
CStcping      
ip

0 人点赞