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}"
- XEN="sudo /opt/xensource/bin/xl list"
- 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 Xen VMs to activate a warning message.
- -c = Number of Xen VMs 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/xl ] || die "This script depends on /opt/xensource/bin/xl"
- # check for arguments:
- [ "${ARGS}" = 4 ] || fShowUsage
- # check for parameters
- [ "${PARM2}" = "-c" -o "${CRIT}" != "" ] || fShowUsage
- [ "${PARM1}" = "-h" -o "${WARN}" != "" ] || fShowUsage
- OUTPUT="$( ${XEN} )"
- NBVMS=$(echo "${RUNNING}" | wc -w)
- HNAME=$(hostname)
- # validate output
- ( echo "${OUTPUT}" | grep -q 'ID Mem VCPUs State' ) || die "Unexpected output from plugin!"
- echo -e "Xen Running =\n${OUTPUT}"
- # make results
- if [ "$NBVMS" -le "$CRIT" ]; then
- echo "Critical Xen VMs Usage - Total NB: $NBVMS - detected VMs: $RUNNING"
- exit ${STATE_CRITICAL}
- elif [ "$NBVMS" -le "$WARN" ]; then
- echo "Warning Xen VMs Usage - Total NB: $NBVMS - detected VMs: $RUNNING"
- exit ${STATE_WARNING}
- else
- echo "OK: Xen Hypervisor \"$HNAME\" is running Xen VMs: $RUNNING"
- exit ${STATE_OK}
- fi
- }
- # Start the program:
- fMain
- # Exit with previous return code:
- exit "${?}"
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement