flipje

check_max_uptime_nagios_nrpe

Jul 4th, 2012
70
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Bash 2.23 KB | None | 0 0
  1. #!/bin/bash
  2. # flip hess november 2011 [email protected]
  3. # nagios check 200 days uptime KVM bug
  4.  
  5. # Variables
  6.  
  7.   PATH='/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin'
  8.   SCRIPT_PATH="${0}"
  9.  
  10.   DATE="$(date '+%Y%m%d-%H%M')"
  11.   STATE_OK="0"
  12.   STATE_WARNING="1"
  13.   STATE_CRITICAL="2"
  14.   STATE_UNKNOWN="3"
  15.  
  16.  
  17. # Functions:
  18.  
  19. # The main function.
  20. function fCheck()
  21. {
  22.   # check if arguments are valid:
  23.   [ ! -z ${WARN} ] || { fShowUsage ; exit "${STATE_UNKNOWN}"; }
  24.   [ ! -z ${CRIT} ] || { fShowUsage ; exit "${STATE_UNKNOWN}"; }
  25.  
  26.   # get info
  27.   UPTIME="$( cat /proc/uptime )"
  28.  
  29.   SECS="$( echo "${UPTIME}" | awk '{print $1}' | cut -d. -f1 )"
  30.   IDLE="$( echo "${UPTIME}" | awk '{print $2}' | cut -d. -f1 )s"
  31.   MINS="$(( ${SECS} / 60 ))"
  32.   HRS="$((  ${MINS} / 60 ))"
  33.   DAYS="$(( ${HRS}  / 24 ))"
  34.  
  35.   # make results
  36.    if [ "${DAYS}" != 0 ] ; then
  37.       if [ ${DAYS} -lt ${WARN} ]; then
  38.          { echo -e    "OKAY: Up: ${DAYS} days, Warn: ${WARN} days, Crit: ${CRIT} days | 'UP'=${DAYS};${WARN};${CRIT};1;200 'CPU-idle'=${IDLE};;;;;" ; exit ${STATE_OK}; }
  39.  
  40.      elif [ ${DAYS} -gt ${WARN} ] && [ ${DAYS} -le ${CRIT} ]; then
  41.          { echo -e "WARNING: Up: ${DAYS} days, Warn: ${WARN} days, Crit: ${CRIT} days | 'UP'=${DAYS};${WARN};${CRIT};1;200 'CPU-idle'=${IDLE};;;;;" ; exit ${STATE_WARNING}; }
  42.  
  43.      elif [ ${DAYS} -gt ${CRIT} ] ; then
  44.       { echo -e   "CRITICAL: Up: ${DAYS} days, Warn: ${WARN} days, Crit: ${CRIT} days | 'UP'=${DAYS};${WARN};${CRIT};1;200 'CPU-idle'=${IDLE};;;;;" ; exit ${STATE_CRITICAL}; }
  45.  
  46.      fi
  47.    else
  48.       { echo -e "OK - System uptime less than a day! - KVM bug = 200 days | 'UP'=${DAYS};${WARN};${CRIT};1;200 'CPU-idle'=${IDLE};;;;;" ; exit ${STATE_OK}; }
  49.    fi
  50.  
  51. }
  52.  
  53. # The main function.
  54. function fMain()
  55. {
  56.   #get options and set vars
  57.   while getopts "w:c:v" OPTION ; do
  58.     case ${OPTION} in
  59.       w) WARN="${OPTARG}";;
  60.       c) CRIT="${OPTARG}";;
  61.       h) fShowUsage;;
  62.       ?) fShowUsage;;
  63.     esac
  64.   done
  65.  
  66.   # trap de check af
  67.   fCheck
  68. }
  69.  
  70. # Shows usage.
  71. function fShowUsage()
  72. {
  73.   echo "Usage: ${SCRIPT_PATH} [ -w WARNING ] [ -c CRITICAL ] [ -h ]"
  74.   echo "Check Max Linux uptime with NRPE - [email protected] 2012-07"
  75.   return 0
  76. }
  77.  
  78.  
  79. # Start the program:
  80. fMain "${@}"
Advertisement
Add Comment
Please, Sign In to add comment