zoukankan      html  css  js  c++  java
  • 监控端口是否开放,端口未开放关闭虚拟ip,端口开放启动虚拟IP

    #!/bin/bash
    #该脚本监控本机的一个端口,当端口异常时,停止lvs的本地ip直到恢复。该脚本依托于lvs.sh启动脚本
    #目前只支持监控1个vip

    #定义常用变量
    #配置检查的ip以及端口
    check_ip=127.0.0.1
    port=8081
    vip=10.0.0.52
    #脚本目录
    path=/web/lvs52.sh


    #判断文件是否存在,不存在则退出
    if [ ! -e $path ];then
    echo "$path is not exist"
    exit
    fi
    #检查nc命令是否存在,不存在提示退出
    which nc >& /dev/null
    if [ $? != 0 ];
    then
    echo "on nc command"
    exit
    fi

    #判断虚拟ip状态,运行中返回0,停止返回1,其它返回2
    vip_status(){
    path=$1
    #检查vip运行状态,通过lvs.sh脚本反馈结果判断
    state=`/bin/bash $path status`
    if [[ $state == 'LVS-DR Running.' ]];
    then
    echo "$vip is ok"
    return 0
    elif [[ $state == 'LVS-DR real server Stopped.' ]]
    then
    echo "$vip is stop"
    return 1
    else
    echo "It is error"
    return 2
    fi
    }

    #检查ip、端口是否可达, 可达返回0,不可返回1
    port_check(){
    ip=$1
    port=$2
    `nc -v -z $ip $port >& /dev/null`
    if [[ $? = "0" ]];then
    echo "$ip的$port可以连通"
    return 0
    else
    echo "$ip的$port未开放,error"
    return 1
    fi
    }


    #检查端口,如端口正常检查vip,端口异常,停止vip
    while true;
    do
    port_check $check_ip $port
    if [[ $? = "0" ]];then
    vip_status $path
    if [[ $? != 0 ]];then
    /bin/sh $path start
    fi
    else
    vip_status $path
    if [[ $? == 0 ]];then
    `/bin/bash $path stop`
    fi
    fi
    sleep 3
    done

  • 相关阅读:
    第二章 课后习题 6
    第二章 课后习题 5
    第一章 课后习题 10
    第一章 课后习题 7
    JAVA练习1
    作业2
    作业
    c++作业10月13日作业
    c++作业50页例题3.1
    for循环作业4和5
  • 原文地址:https://www.cnblogs.com/uestc2007/p/10735833.html
Copyright © 2011-2022 走看看