flipje

nagios_check_unix_uptime

Mar 9th, 2012
73
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Bash 1.92 KB | None | 0 0
  1. #!/bin/bash
  2. # flip hess november 2011 [email protected]
  3. # nagios check mhasmo check uptime
  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.   KEY="/home/nagios/.ssh/id_dsa"
  17.  
  18. # Functions:
  19.  
  20. # The main function.
  21. function fCheck()
  22. {
  23.   # check if arguments are valid:
  24.   [ ! -z ${WARN} ] || { fShowUsage ; exit "${STATE_UNKNOWN}"; }
  25.   [ ! -z ${CRIT} ] || { fShowUsage ; exit "${STATE_UNKNOWN}"; }
  26.  
  27.   # get info
  28.   OUTPUT="$( uptime )"
  29.   TIME="$(echo "${OUTPUT}" | awk '{print $4 }' | tr -d "," )"
  30.   EMIT="$(echo "${OUTPUT}" | awk '{print $3 }')"
  31.  
  32.   # make results
  33.   if echo "${UPTIME}"| awk '{print $4}' |tr -d "," |grep -q 'min'  ; then
  34.      if [ ${EMIT} -gt ${WARN} ]; then
  35.       { echo -e  "OKAY: Uptime of ${HOST} is more then ${WARN} minutes!\n${OUTPUT}" ; exit ${STATE_OK}; }
  36.      elif [ ${EMIT} -lt ${WARN} ] && [ ${EMIT} -ge ${CRIT} ]; then
  37.       { echo -e "WARNING: Uptime of ${HOST} is lower than ${CRIT} minutes!\n${OUTPUT}" ; exit ${STATE_WARNING}; }
  38.      elif [ ${EMIT} -le ${CRIT} ] ; then
  39.       { echo -e "CRITICAL: Uptime of ${HOST} is lower than ${CRIT} minutes!\n${OUTPUT}" ; exit ${STATE_CRITICAL}; }
  40.      fi
  41.   else
  42.     { echo -e "OKAY: Uptime of ${HOST} is ${EMIT} ${TIME}\n${OUTPUT}" ; exit ${STATE_OK}; }
  43.   fi
  44. }
  45.  
  46. # The main function.
  47. function fMain()
  48. {
  49.   #get options and set vars
  50.   while getopts "w:c:v" OPTION ; do
  51.     case ${OPTION} in
  52.       w) WARN="${OPTARG}";;
  53.       c) CRIT="${OPTARG}";;
  54.       h) fShowUsage;;
  55.       ?) fShowUsage;;
  56.     esac
  57.   done
  58.  
  59.   # trap de check af
  60.   fCheck
  61. }
  62.  
  63. # Shows usage.
  64. function fShowUsage()
  65. {
  66.   echo "Usage: ${SCRIPT_PATH} [ -w WARNING ] [ -c CRITICAL ] [ -h ]"
  67.   echo "Check Linux uptime over ssh - [email protected] 2011-12"
  68.   return 0
  69. }
  70.  
  71.  
  72. # Start the program:
  73. fMain "${@}"
Advertisement
Add Comment
Please, Sign In to add comment