监控服务器端口是否正常

共有两个脚本,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便可

 

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
相关文章
相关标签/搜索