Linux shell 批量驗證端口連通性


     工作中會遇到驗證到某某服務器端口是否連通,如果IP或端口多時,用shell還是很省時省力的,看下面的腳本:

      

#!/bin/bash
#
#database check
#set -o nounset
LOCALIP=`ifconfig | grep inet | head -1 | awk '{print $2}' | sed 's/addr\://'`
IPLIST='192.168.161.234
192.168.161.235
192.168.161.22
' PORTLIST='1521 1522 1523 1524 1525 1526 1527 1528 1529 1530' check_nc(){ for CHECK_IP in $IPLIST do for CHECK_PORT in $PORTLIST do nc -nz -w 1 $CHECK_IP $CHECK_PORT if [ $? -eq 0 ];then echo "$LOCALIP result $CHECK_IP $CHECK_PORT Connected" else echo "$LOCALIP result $CHECK_IP $CHECK_PORT Noconnected" fi done done } check_nc_7(){ for CHECK_IP in $IPLIST do for CHECK_PORT in $PORTLIST do nc -n -w 1 $CHECK_IP $CHECK_PORT < /dev/null if [ $? -eq 0 ];then echo "$LOCALIP result $CHECK_IP $CHECK_PORT Connected" else echo "$LOCALIP result $CHECK_IP $CHECK_PORT Noconnected" fi done done } check_telnet(){ for CHECK_IP in $IPLIST do for CHECK_PORT in $PORTLIST do echo -e "\n"| telnet $CHECK_IP $CHECK_PORT | grep Connected
if [ $? -eq 0 ];then echo "$LOCALIP result $CHECK_IP $CHECK_PORT Noconnected" else echo "$LOCALIP result $CHECK_IP $CHECK_PORT Connected" fi done done } echo "--------------------------------------" echo "execution time : `date`" echo "--------------------------------------" echo "Home ip : $LOCALIP" echo "--------------------------------------" which nc > /dev/null if [ $? -eq 0 ];then echo "------------------nc------------------" echo "--------------------------------------" cat /etc/redhat-release |grep 'release 7' > /dev/null if [ $? -eq 0 ];then check_nc_7 else check_nc fi else which telnet > /dev/null if [ $? -eq 0 ];then echo "-----------------telnet----------------" check_telnet fi fi

       此腳本考慮了nc及telnet命令,及nc在redhat 7中應用的不同。可以直接復制使用,只要修改一下IP和端口。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM