Advertisement
Guest User

nagios_check_xenlicense

a guest
Mar 9th, 2012
123
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Bash 2.62 KB | None | 0 0
  1. #!/bin/bash
  2.  
  3. # Global variables:
  4. PATH='/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin'
  5. SCRIPT_PATH="${0}"
  6. ARGS="${#}"
  7. PARM1="${1}"
  8. WARN="${2}"
  9. PARM2="${3}"
  10. CRIT="${4}"
  11.  
  12. # BINARY
  13. XEN="sudo /opt/xensource/bin/xe host-license-view"
  14.  
  15. # STATES
  16. STATE_OK="0"
  17. STATE_WARNING="1"
  18. STATE_CRITICAL="2"
  19. STATE_UNKNOWN="3"
  20.  
  21. # Functions:
  22.  
  23.   # exit function
  24.   function die()
  25.   {
  26.     # output
  27.     echo -e "Error in ${SCRIPT_PATH}:\n ${1}"
  28.  
  29.     # return state unknown
  30.     exit ${STATE_UNKNOWN}
  31.   }
  32.  
  33.   # Shows usage function.
  34.   function fShowUsage()
  35.   {
  36.     echo -e "Usage: ${SCRIPT_PATH} -w <warning> -c <critical>\n
  37.    -w = Minimum Number of days before expiration to activate a warning message.
  38.    -c = Number of days before expiration to activate a critical message.\n\nVersion 2.0"
  39.     exit ${STATE_UNKNOWN}
  40.   }
  41.  
  42.   # The main function.
  43.   function fMain()
  44.   {
  45.     # script o depends on:
  46.     [ -x /opt/xensource/bin/xe ] || die "This script depends on /opt/xensource/bin/xe"
  47.  
  48.     # check for arguments:
  49.     [ "${ARGS}" = 4 ] || fShowUsage
  50.  
  51.     # check for parameters
  52.     [ "${PARM2}" = "-c" -o "${CRIT}" != "" ] || fShowUsage
  53.     [ "${PARM1}" = "-h" -o "${WARN}" != "" ] || fShowUsage
  54.  
  55.     # validate output
  56.     OUTPUT="$( ${XEN} )"
  57.     ( echo "${OUTPUT}" | grep -q 'serialnumber' ) || die "Unexpected output from plugin!"
  58.  
  59.     EXPIRYDATE="$( echo -e "${OUTPUT}" | grep expiry | awk '{ print $2 }' | tr -d "Z" | awk -F"T" '{print $1}' )"
  60.     EXTIME="$( echo -e "${OUTPUT}" | grep expiry | awk '{ print $2 }' | tr -d "Z" | awk -F"T" '{print $2}' )"
  61.     TODAY="$( date +%Y%m%d )"
  62.     TIMESTAMPTODAY="$( date +%s -d $TODAY )"
  63.     DATEOFEXPIRE="$( date +%s -d $EXPIRYDATE )"
  64.     SECONDSINDAY='86400'
  65.     DAYDIFF="$( echo \($DATEOFEXPIRE -$TIMESTAMPTODAY\) / ${SECONDSINDAY} | bc )"
  66.     INFO="${DAYDIFF} days are left to renew Xen License"
  67.  
  68.  
  69.     # make results
  70.     if   [ "${DAYDIFF}" -gt "${WARN}" ] ; then
  71.          echo -e "OK \"${INFO}\""
  72.          exit "${STATE_OK}"
  73.     elif [ "${DAYDIFF}" -le "${WARN}" ] && [ "${DAYDIFF}" -gt "${CRIT}" ] ; then
  74.          echo -e "WARNING - CITRIX license is about to expire - \"${WARN} < ${DAYDIFF}\" - \"${INFO}\""
  75.          exit "${STATE_WARNING}"
  76.     elif [ "${DAYDIFF}" -le "${WARN}" ] ; then
  77.          echo -e "CRITICAL - CITRIX license is about to expire - \"${CRIT} < ${DAYDIFF}\" - \"${INFO}\""
  78.          exit "${STATE_CRITICAL}"
  79.     else
  80.          echo -e "UNKNOWN - This nagiosplugin sucks bigtime! Results unknown - \"${INFO}\""
  81.          exit "${STATE_UNKNOWN}"
  82.     fi
  83.  
  84.   }
  85.  
  86.  # Start the program:
  87.   fMain
  88.  
  89.  # Exit with previous return code:
  90.   exit "${?}"
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement