• 用snmp采集系统运行时间


     1 #!/bin/sh
     2 #
     3 #File: check_snmp_uptime.sh
     4 #
     5 #Date: 2012年08月17日
     6 #
     7 ##################################################
     8 
     9 # Exit-Codes:
    10 STATE_OK=0
    11 STATE_WARNING=1
    12 STATE_CRITICAL=2
    13 STATE_UNKNOWN=3
    14 
    15 PROGNAME=`/usr/bin/basename $0`
    16 print_usage() 
    17 {
    18     echo "Usage: $PROGNAME --help"
    19 }
    20 usage()
    21 {
    22 cat << EOF
    23 usage: `basename $0` -H <address> -v <snmp_version> -c <community>
    24 example: check_snmp_systime.sh -H 10.0.1.6 -v 2c -c public
    25 EOF
    26 }
    27 
    28 if [ $# -lt 1 ]; then
    29     print_usage
    30     exit $STATE_UNKNOWN
    31 fi
    32 
    33 while [ ! -z "$1" ]; do 
    34 case $1 in    
    35 -v) shift; version=$1 ;;
    36 -H) shift; HOSTADDRESS=$1 ;;
    37 -c) shift; community=$1 ;;
    38 --help) usage; exit ;;
    39 esac
    40 shift
    41 done
    42 
    43 match1="Timeticks"
    44 match2="days"
    45 
    46 status=$(snmpwalk -v $version -c $community $HOSTADDRESS sysUpTime.0)
    47 
    48 if echo "$status" | grep -q "$match1"; then
    49 
    50 systime=`snmpwalk -v $version -c $community $HOSTADDRESS sysUpTime.0 | awk -F "=" '{print $2}' | awk -F ")" '{print $2}'`
    51 #
    52 #snmpwalk -v $version -c $community $HOSTADDRESS sysUpTime.0 | awk -F "=" '{print $2}'
    53 #Timeticks: (167220400) 19 days, 8:30:04.00
    54 #
    55 #snmpwalk -v $version -c $community $HOSTADDRESS sysUpTime.0 | awk -F "=" '{print $2}' | awk -F ")" '{print $2}'
    56 #19 days, 8:30:04.00
    57 #
    58 if echo "$systime" | grep -q "$match2"; then
    59 #if  [ $? -eq 0 ]; then
    60 #$sysytime 是否包含 $match,-q 不显示所有输出
    61 days=`echo $systime | awk -F "days" '{print $1}'`
    62 #19天
    63 hours=`echo $systime | awk -F "," '{print $2}' | awk -F ":" '{print $1}'`
    64 #8小时
    65 minutes=`echo $systime | awk -F "," '{print $2}' | awk -F ":" '{print $2}'`
    66 #30分钟
    67 echo "已运行 $days天,$hours小时$minutes分钟"
    68 exit $STATE_OK
    69     #elif [ $? -ne 0 ]; then
    70 else
    71 hours=`echo $systime | cut -f1 -d":"`
    72 minutes=`echo $systime | cut -f2 -d":"`
    73 echo "已运行$hours小时$minutes分钟"
    74 exit $STATE_OK
    75 fi
    76 else
    77 exit $STATE_UNKNOW
    78 
    79 fi
  • 相关阅读:
    Google Style Guides-Shell Style Guide
    支付宝钱包手势password破解实战(root过的手机可直接绕过手势password)
    学习Java JDBC,看这篇就够了
    php学习之道:WSDL具体解释(一)
    Android学习笔记(17):文本框TextView类
    HttpSession的深入分析与研究
    【leetcode】atoi (hard) ★
    【leetcode】Candy(hard) 自己做出来了 但别人的更好
    【leetcode】Substring with Concatenation of All Words (hard) ★
    【leetcode】 Search a 2D Matrix (easy)
  • 原文地址:https://www.cnblogs.com/wowchky/p/2729050.html
Copyright © 2020-2023  润新知