監控服務器端口是否正常


共有兩個腳本,port1.sh和port2.sh

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檢查的端口檢測。

a.    port1.sh帶ping檢查的腳本針對的是遠端服務器可以使用ping命令ping通,腳本先使用ping命令檢則網絡連通性再檢測端口是否開放。如果網絡不通會提示遠端服務器是down狀態退出腳本,如果網絡可以ping通但端口沒有開放,會提示網絡可以連通但遠端端口是closed狀態。

 

b.    port2.sh不帶ping檢查的腳本針對的是遠端服務器禁止ping命令,無法ping通,但是服務器端口對外開放,所以腳本中不使用ping命令測試網絡連通性而直接檢測端口是否開放,如果端口開放會提示端口open狀態,不開放會提示端口closed狀態。

 

 

腳本可放在任意目錄下執行,前提條件:

1. 服務器必須先安裝nc-1.84-24.el6.x86_64軟件包,才能執行端口檢測,可使用rpm -qa | grep nc查看服務器有沒有安裝

 

2.如果服務器沒有安裝,請安裝該軟件包,使用命令yum install nc即可

 

Port2.sh可改為如下內容

#!/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

 


免責聲明!

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



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