因一些項目需要批量開通網絡策略,需要逐個測試端口的導通性,參考網上其他人的文章,簡單寫了一個shell
1 #!/bin/bash 2 3 check_telnet(){ 4 LOCALIP=$(ip addr | awk '/^[0-9]+: / {}; /inet.*global/ {print gensub(/(.*)\/(.*)/, "\\1", "g", $2)}') 5 6 for ip_port in $(cat ip_info|grep -v '^#') 7 do 8 CHECK_PORT=$(echo $ip_port|awk -F: '{print $2}') 9 CHECK_IP=$(echo $ip_port|awk -F: '{print $1}') 10 echo -e "\n"| (sleep 1;) | telnet $CHECK_IP $CHECK_PORT |grep "Connected to\|Escape Character" >/dev/null 11 if [ $? -eq 0 ];then 12 echo "$LOCALIP result $CHECK_IP $CHECK_PORT Connected" 13 else 14 echo "$LOCALIP result $CHECK_IP $CHECK_PORT can not Connected" 15 fi 16 done 17 } 18 19 check_telnet >result.log
上述代碼讀取文件 ip_info,這個文件如下
1 #請使用ip:port的格式編輯 2 220.181.38.150:443 3 180.97.33.107:443 4 #如是一個列表,可使用#注釋不測試的ip 5 #180.97.34.96:80 6 #可使用域名:port 7 www.baidu.com:80 8 www.baidu.com:443
ip_info 與shell文件需要在同一路徑下,執行后產生的文件是result.log