• 监控服务器端口是否正常


    共有两个脚本,port1.sh和port2.sh

    port1.sh脚本

    #!/bin/bash
    server=$1
    port=$2
    if [ $# -ne 2 ]
     then
      echo -e "33[35musage:`basename $0` ipaddress port33[0m"
      exit 1
    fi
    /bin/ping -c 1 -w 1 $server > /dev/null 
    if [ $? -eq 0 ]
     then
     echo  -e "33[35m$server is ok!33[0m"
     /usr/bin/nc -z -v -w3 $server $port > /dev/null 2>$1
        if [ $? -eq 0 ]
         then
          echo -e "33[35mPort $port is open33[0m"
         else
          echo -e "33[35mPort $port is closed33[0m"
        fi
      else
       echo -e "33[35m$server is donw!33[0m"
    fi

    port2.sh脚本

    #!/bin/bash
    server=$1
    port=$2
    if [ $# -ne 2 ]
     then
      echo -e "33[35musage:`basename $0` ipaddress port33[0m"
      exit 1
    fi
    /usr/bin/nc -z -v -w3 $server $port > /dev/null 2>$1
    if [ $? -eq 0 ]
     then
      echo -e "33[35mPort $port is open33[0m"
     else
      echo -e "33[35mPort $port is closed33[0m"
    fi

    端口通就返回200,端口不通就返回400

    ps:   33[35m  33[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
  • 相关阅读:
    split a string into an array through comma
    正则表达式替换日期
    在Ajax1.0中调用页面CS文件中的方法
    半透明的div对话框
    foreach 的自动转化类型
    ViewStateAutoManager
    using ISerializable to control serialization and deserialization
    div with separated html template
    2018.9.9作业
    CSS单位
  • 原文地址:https://www.cnblogs.com/java-spring/p/7793020.html
Copyright © 2020-2023  润新知