#!/bin/sh


############################## check_snmp_hpux_swap ##############
# Version : 0.1
# Date :  September 06 - 2011
# Author: Hector Chena
# With help from : Alain van der Heiden & Remco Hage
# Help : http://www.realopenit.nl
# Licence : GPL - http://www.fsf.org/licenses/gpl.txt
#################################################################
#
# help : ./check_snmp_hpux_swap

PROGNAME=$0
DEPTH=2     # Achter komma bij percentage berekening
HOSTNAME="$1"
WARNING=$2
CRITICAL=$3
COMMUNITY=$4

print_help() {
	echo $PROGNAME
	echo ""
	echo "Usage: $PROGNAME <hostname> <warning> <critical>"
	echo ""
	echo "This plugin checks swap used on HP-UX servers."
	echo "Tests if swap is greater then <warning> and <critical>"
	echo ""
	exit 0
}


case "$1" in
	--help)
		print_help
		exit 0
		;;
	-h)
		print_help
		exit 0
		;;
	--version)
   		echo $PROGNAME v0.1
		exit 0
		;;
	-V)
		echo $PROGNAME v0.1
		exit 0
		;;
	*)
		FREESWAP=`snmpwalk -v 2c -c "$COMMUNITY" "$HOSTNAME" -Oq -Ov .1.3.6.1.4.1.11.2.3.1.1.12.0`
		TOTALSWAP=`snmpwalk -v 2c -c "$COMMUNITY" "$HOSTNAME" -Oq -Ov .1.3.6.1.4.1.11.2.3.1.1.11.0`

		## Conversion KB -> MB

		FREEMB=$(echo "scale=0 ; $FREESWAP/1024"| bc)
		TOTALMB=$(echo "scale=0 ; $TOTALSWAP/1024"| bc)
		USED=$(echo "scale=2 ; ($TOTALSWAP - $FREESWAP)/1024"| bc)
		

		## Percentage calculation
		


		CALDEPTH=$(($FREESWAP*100))
		PERCENT=$(echo "scale=$DEPTH ; (100-($CALDEPTH/$TOTALSWAP))"| bc)
		INTPERCENT=$(echo "scale=0 ; (100-($CALDEPTH/$TOTALSWAP))"| bc)
		
		STATUS="UNKNOWN"

                if [ $INTPERCENT -ge $CRITICAL ]; then
                        STATUS="CRITICAL"
                elif [ $INTPERCENT -ge $WARNING ]; then
                        STATUS="WARNING"
                elif [ $INTPERCENT -le $WARNING ]; then
                        STATUS="OK"
                fi


		echo "Swap Used: $USED MB ($PERCENT%) : $STATUS"
		
		 if [ $INTPERCENT -ge $CRITICAL ]; then
                        exit 2;
                elif [ $INTPERCENT -ge $WARNING ]; then
                        exit 1;
                elif [ $INTPERCENT -le $WARNING ]; then
                        exit 0;
                else 
            	    exit 4;
                fi


		;;


esac

