Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/bin/bash
- # Global variables:
- PATH='/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin'
- SCRIPT_PATH="${0}"
- ARGS="${#}"
- PARM1="${1}"
- WARN="${2}"
- PARM2="${3}"
- CRIT="${4}"
- # BINARY
- XEN="sudo /opt/xensource/bin/xe host-license-view"
- # STATES
- STATE_OK="0"
- STATE_WARNING="1"
- STATE_CRITICAL="2"
- STATE_UNKNOWN="3"
- # Functions:
- # exit function
- function die()
- {
- # output
- echo -e "Error in ${SCRIPT_PATH}:\n ${1}"
- # return state unknown
- exit ${STATE_UNKNOWN}
- }
- # Shows usage function.
- function fShowUsage()
- {
- echo -e "Usage: ${SCRIPT_PATH} -w <warning> -c <critical>\n
- -w = Minimum Number of days before expiration to activate a warning message.
- -c = Number of days before expiration to activate a critical message.\n\nVersion 2.0"
- exit ${STATE_UNKNOWN}
- }
- # The main function.
- function fMain()
- {
- # script o depends on:
- [ -x /opt/xensource/bin/xe ] || die "This script depends on /opt/xensource/bin/xe"
- # check for arguments:
- [ "${ARGS}" = 4 ] || fShowUsage
- # check for parameters
- [ "${PARM2}" = "-c" -o "${CRIT}" != "" ] || fShowUsage
- [ "${PARM1}" = "-h" -o "${WARN}" != "" ] || fShowUsage
- # validate output
- OUTPUT="$( ${XEN} )"
- ( echo "${OUTPUT}" | grep -q 'serialnumber' ) || die "Unexpected output from plugin!"
- EXPIRYDATE="$( echo -e "${OUTPUT}" | grep expiry | awk '{ print $2 }' | tr -d "Z" | awk -F"T" '{print $1}' )"
- EXTIME="$( echo -e "${OUTPUT}" | grep expiry | awk '{ print $2 }' | tr -d "Z" | awk -F"T" '{print $2}' )"
- TODAY="$( date +%Y%m%d )"
- TIMESTAMPTODAY="$( date +%s -d $TODAY )"
- DATEOFEXPIRE="$( date +%s -d $EXPIRYDATE )"
- SECONDSINDAY='86400'
- DAYDIFF="$( echo \($DATEOFEXPIRE -$TIMESTAMPTODAY\) / ${SECONDSINDAY} | bc )"
- INFO="${DAYDIFF} days are left to renew Xen License"
- # make results
- if [ "${DAYDIFF}" -gt "${WARN}" ] ; then
- echo -e "OK \"${INFO}\""
- exit "${STATE_OK}"
- elif [ "${DAYDIFF}" -le "${WARN}" ] && [ "${DAYDIFF}" -gt "${CRIT}" ] ; then
- echo -e "WARNING - CITRIX license is about to expire - \"${WARN} < ${DAYDIFF}\" - \"${INFO}\""
- exit "${STATE_WARNING}"
- elif [ "${DAYDIFF}" -le "${WARN}" ] ; then
- echo -e "CRITICAL - CITRIX license is about to expire - \"${CRIT} < ${DAYDIFF}\" - \"${INFO}\""
- exit "${STATE_CRITICAL}"
- else
- echo -e "UNKNOWN - This nagiosplugin sucks bigtime! Results unknown - \"${INFO}\""
- exit "${STATE_UNKNOWN}"
- fi
- }
- # Start the program:
- fMain
- # Exit with previous return code:
- exit "${?}"
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement