#!/bin/bash

# Licensed under GPL. See http://www.fsf.org/licensing/licenses/gpl.html#SEC1
# Based on private work from Patrik Schindler <poc@pocnet.net> (c) 2005

MYNAME=`basename $0`
PROGPATH=`echo $0 |sed -e 's,[\\/][^\\/][^\\/]*$,,'`
test -x $PROGPATH/utils.sh && . $PROGPATH/utils.sh

# Ohne Parameter blöde machen
if [ $# -lt 1 ]; then
	${PRINTF} "Usage: ${MYNAME} -h host -s snmp-community\n"
	exit ${STATE_UNKNOWN}
fi

# Optionen parsen: Getopt unter Shell ist der größte Mist, wenn's um : Args geht
NEXT_IS_H=0
NEXT_IS_S=0
#
OPTSTRING=`getopt "vh:s:" $*`
test $? -ne 0 && exit ${STATE_UNKNOWN}
for OPTION in ${OPTSTRING}; do
	if [ ${NEXT_IS_H} -eq 1 ]; then
		HOST=$OPTION
		NEXT_IS_H=0
	elif [ ${NEXT_IS_S} -eq 1 ]; then
		COMMUNITY=$OPTION
		NEXT_IS_S=0
	fi

	case "${OPTION}" in
		"-v")
			echo '$Id: check_snmp_cisco_tempstate,v 1.3 2007/06/07 09:36:39 pschindler Exp $'
			exit ${STATE_UNKNOWN}
		;;
		"-s")
			NEXT_IS_S=1
		;;
		"-h")
			NEXT_IS_H=1
		;;
	esac
done

unset NEXT_IS_S NEXT_IS_H

# Sanity Check
if [ -z "${HOST}" ]; then
	echo "You MUST supply a host to monitor."
	exit ${STATE_UNKNOWN}
fi
if [ -z "${COMMUNITY}" ]; then
	echo "You MUST supply a snmp community."
	exit ${STATE_UNKNOWN}
fi

# Next, get neccessary information for some mathematics
ERR=0
STATE=`snmpget -v1 -OQv -c "${COMMUNITY}" "${HOST}" SNMPv2-SMI::enterprises.9.9.13.1.3.1.6.1` || ERR=`expr ${ERR} + 1`

if [ ${ERR} -gt 0 ]; then
	echo "SNMP Error."
	exit ${STATE_UNKNOWN}
fi


if [ ${STATE} -eq 1 ]; then
	echo "TEMP OK"
	exit ${STATE_OK}
elif [ ${STATE} -eq 2 ]; then
	echo "TEMP WARNING"
	exit ${STATE_WARNING}
elif [ ${STATE} -eq 3 ]; then
	echo "TEMP CRITICAL"
	exit ${STATE_CRITICAL}
else
	echo "TEMP UNKNOWN"
	exit ${STATE_UNKNOWN}
fi

# EOF
