#! /bin/sh ##### # check_printq - nagios plugin for AIX qdaemon based queues #### ECHO="/usr/bin/echo" QCHK="/usr/bin/qchk" GREP="/usr/bin/egrep" PROGNAME=`/usr/bin/basename $0` PROGPATH=`echo $0 | sed -e 's,[\\/][^\\/][^\\/]*$,,'` REVISION=`echo '$Revision: 1.0 $' | sed -e 's/[^0-9.]//g'` . $PROGPATH/utils.sh ShowUsage() { echo "Usage: $PROGNAME -Q QueueName -w # -c #" echo "Usage: $PROGNAME --help" echo "Usage: $PROGNAME --version" } ShowHelp() { print_revision $PROGNAME $REVISION echo "" ShowUsage echo "" echo "AIX Qdaemon monitor for Nagios" echo "" support } # Make sure the correct number of command line # arguments have been supplied if [ $# -lt 1 ]; then ShowUsage exit $STATE_UNKNOWN fi # Grab the command line arguments exitstatus=$STATE_WARNING #default while test -n "$1"; do case "$1" in --help) ShowHelp exit $STATE_OK ;; -h) ShowHelp exit $STATE_OK ;; --version) print_revision $PROGNAME $VERSION exit $STATE_OK ;; -V) print_revision $PROGNAME $VERSION exit $STATE_OK ;; -Q) qNAME=$2 shift ;; -w) qWarnCount=$2 shift ;; -c) qCritCount=$2 shift ;; *) echo "Unknown argument: $1" ShowUsage exit $STATE_UNKNOWN ;; esac shift done # check queued jobs qCheck=$? if [ ${qCheck} == 1 ] then exit $STATE_UNKNOWN fi # get jobcount qJobCount=`${QCHK} -P${qNAME} | ${GREP} -c QUEUED` nSTATUS=$STATE_OK if [ ${qJobCount} -gt ${qWarnCount} -a ${qJobCount} -lt ${qCritCount} ] then nSTATUS=$STATE_WARNING else if [ ${qJobCount} -gt ${qWarnCount} -o ${qJobCount} -gt ${qCritCount} ] then nSTATUS=$STATE_CRITICAL fi fi # check status of printer if DOWN, READY or RUNNING qSTAT=`${QCHK} -WP${qNAME} | ${GREP} ${qNAME} | awk '{print $3}'` case "${qSTAT}" in READY) $ECHO "$qNAME is ${qSTAT} with [ ${qJobCount} ] queued Jobs" exit $nSTATUS ;; RUNNING) $ECHO "$qNAME is ${qSTAT} with [ ${qJobCount} ] queued Jobs" exit $nSTATUS ;; DOWN) $ECHO "$qNAME is ${qSTAT} with [ ${qJobCount} ] queued Jobs" exit $STATE_CRITICAL ;; *) ${ECHO} "[ ${qSTAT} ] queued Jobs with Unknown STATUS: ${qSTAT}" nSTATUS=$STATE_UNKNOWN exit $STATE_UNKNOWN ;; esac exit $nSTATUS ## EOF