開發與維運

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

#!/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
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                                                                                        # 調用方法不能使用保留關鍵字,tcping 現在是一個命令,與方法衝突

Leave a Reply

Your email address will not be published. Required fields are marked *