zoukankan      html  css  js  c++  java
  • 监控linux各主机系统时间是否一致

    #!/bin/bash
    STATE_OK=0
    STATE_WARNING=1
    STATE_CRITICAL=2
    STATE_UNKNOWN=3
    PASSWD='**************'
    print_help() {
    echo "Usage:"
        echo "  -H)"
        echo "    主机地址"
    echo "[-w] Warning"
    echo "[-c] Critical"
    exit  $STATE_OK
    }
    while test -n "$1"; do
    case "$1" in
    --help|-h)
    print_help
    exit  $STATE_OK
    ;;
     --url|-H)
        HOSTADDRESS=$2
        shift
        ;;
    -w)
    warn_level=$2
    shift
    ;;
    -c)
    critical_level=$2
    shift
    ;;
    *)
    echo "Unknown Argument: $1"
    print_help
    exit  $STATE_UNKNOWN
    ;;
    esac
    shift
    done
    if [ "$warn_level" == "" ]; then
    echo "No Warning Level Specified"
    print_help
    exit  $STATE_UNKNOWN;
    fi
    if [ "$critical_level" == "" ]; then
    echo "No Critical Level Specified"
    print_help
    exit  $STATE_UNKNOWN;
    fi
    if [ "$HOSTADDRESS" == "" ]; then
    echo "No HOSTADDRESS Specified"
    print_help
    exit  $STATE_UNKNOWN;
    fi
    echo "" > /usr/local/nagios/libexec/check_time_data/host_time_$HOSTADDRESS

    #/usr/local/nagios/libexec/check_host_time_expect.sh $HOSTADDRESS &> /usr/local/nagios/libexec/check_time_data/host_time_$HOSTADDRESS
    /usr/local/bin/expect <<EOF
    log_file /usr/local/nagios/libexec/check_time_data/host_time_$HOSTADDRESS
    log_user 1
    spawn  ssh -t -p 22 supope@$HOSTADDRESS "date +%s"
    expect {
            "(yes/no)?"
                        {

                            send "yes "
                            expect  "*assword" { send "$PASSWD "}
                       
                        }
            "*assword"  {
                           
                            send "$PASSWD "
                        }

    }
    expect "100%"
    EOF
    ###处理数据格式
    sed -i 's/ //g' /usr/local/nagios/libexec/check_time_data/host_time_$HOSTADDRESS

    ###处理时间


    host_time=`cat /usr/local/nagios/libexec/check_time_data/host_time_$HOSTADDRESS|grep -E '^[0-9]'`


    cur_time=`date +%s`

    value=`expr $cur_time - $host_time`

    if [ $value -lt 0 ]; then
      let value=0-$value;
    fi


    if [[ "$value" -le "$warn_level" ]]; then
    echo "$HOSTADDRESS time is OK. $HOSTADDRESS_time-cur_time:$value|value=$value;$warn_level;$critical_level;0"
    exit  $STATE_OK;
    elif [[ "$value" -gt "$warn_level" ]] && [[ "$value" -lt "$critical_level" ]]; then
    echo "$HOSTADDRESS time is WARNING. $HOSTADDRESS_time-cur_time:$value|value=$value;$warn_level;$critical_level;0"
    exit  $STATE_WARNING;
    elif [[ "$value" -ge "$critical_level" ]]; then
    echo "$HOSTADDRESS time is CRITICAL. $HOSTADDRESS_time-cur_time:$value|value=$value;$warn_level;$critical_level;0"
    exit  $STATE_CRITICAL;
    fi

    ###备注

    #!/usr/local/bin/expect
    set PASSWD  *******

    set HOSTADDRESS [lindex $argv 0]
    log_file /usr/local/nagios/libexec/check_time_data/host_time_$HOSTADDRESS
    #log_user 0
    log_user 1
    spawn  ssh -t -p 22 supope@$HOSTADDRESS "date +%s"
    expect {
            "(yes/no)?"
                        {

                            send "yes "
                            expect  "*assword" { send "$PASSWD "}

                        }
            "*assword"  {

                            send "$PASSWD "
                        }

    }
    expect eof

  • 相关阅读:
    Python——查看安装位置和安装的库
    python——vs2017安装python库时,提示pip指令问题。
    数电——全减器分析(用74HC138设计提示)
    js $ 获取和设置 css样式中的属性值
    ajax 请求
    render 和 redirect 的区别
    django 之 session
    img 标签不显示图片的问题
    JavaScript jQuery bootstrap css ajax
    模板的继承
  • 原文地址:https://www.cnblogs.com/flyback/p/7145345.html
Copyright © 2011-2022 走看看