共有兩個腳本,port1.sh和port2.shbash
port1.sh腳本服務器
#!/bin/bash server=$1 port=$2 if [ $# -ne 2 ] then echo -e "\033[35musage:`basename $0` ipaddress port\033[0m" exit 1 fi /bin/ping -c 1 -w 1 $server > /dev/null if [ $? -eq 0 ] then echo -e "\033[35m$server is ok!\033[0m" /usr/bin/nc -z -v -w3 $server $port > /dev/null 2>$1 if [ $? -eq 0 ] then echo -e "\033[35mPort $port is open\033[0m" else echo -e "\033[35mPort $port is closed\033[0m" fi else echo -e "\033[35m$server is donw!\033[0m" fi
port2.sh腳本網絡
#!/bin/bash server=$1 port=$2 if [ $# -ne 2 ] then echo -e "\033[35musage:`basename $0` ipaddress port\033[0m" exit 1 fi /usr/bin/nc -z -v -w3 $server $port > /dev/null 2>$1 if [ $? -eq 0 ] then echo -e "\033[35mPort $port is open\033[0m" else echo -e "\033[35mPort $port is closed\033[0m" fi
端口通就返回200,端口不通就返回400測試
ps: \033[35m \033[0m 表示的是字體顏色,因此能夠刪除字體
兩個腳本的功能不一樣,其中port1.sh腳本功能是帶ping檢查的端口檢測,port2.sh腳本功能不帶ping檢查的端口檢測。spa
a. port1.sh帶ping檢查的腳本針對的是遠端服務器能夠使用ping命令ping通,腳本先使用ping命令檢則網絡連通性再檢測端口是否開放。若是網絡不通會提示遠端服務器是down狀態退出腳本,若是網絡能夠ping通但端口沒有開放,會提示網絡能夠連通但遠端端口是closed狀態。code
b. port2.sh不帶ping檢查的腳本針對的是遠端服務器禁止ping命令,沒法ping通,可是服務器端口對外開放,因此腳本中不使用ping命令測試網絡連通性而直接檢測端口是否開放,若是端口開放會提示端口open狀態,不開放會提示端口closed狀態。server
腳本可放在任意目錄下執行,前提條件:blog
1. 服務器必須先安裝nc-1.84-24.el6.x86_64軟件包,才能執行端口檢測,可以使用rpm -qa | grep nc查看服務器有沒有安裝ip
2.若是服務器沒有安裝,請安裝該軟件包,使用命令yum install nc便可
#!/bin/bash server=$1 port=$2 if [ $# -ne 2 ] then echo "`basename $0` ipaddress port" exit 1 fi /usr/bin/nc -z -v -w3 $server $port > /dev/null 2>$1 if [ $? -eq 0 ] then echo "200" else echo "400" fi