#!/bin/bash # check_ethernetprobe2 # Description : Check the status of printers # Version : 1.0 # Author : Jochem van den Anker @ Lorentz Casimir Lyceum # with thanks to Yoann LAMY # Licence : GPLv2 # Commands CMD_BASENAME="/usr/bin/basename" CMD_SNMPGET="/usr/bin/snmpget" CMD_SNMPWALK="/usr/bin/snmpwalk" CMD_AWK="/usr/bin/awk" CMD_GREP="/bin/grep" CMD_EXPR="/usr/bin/expr" # Script name SCRIPTNAME=`$CMD_BASENAME $0` # Version VERSION="1.0" # Plugin return codes STATE_OK=0 STATE_WARNING=1 STATE_CRITICAL=2 STATE_UNKNOWN=3 # Cartridges OID_CURRENT_TEMP="1.3.6.1.4.1.3854.1.2.2.1.16.1.3.0" OID_CURRENT_TEMP_FULL="1.3.6.1.4.1.3854.1.2.2.1.16.1.14.0" DESCRIPTION="Unknown" STATE=$STATE_UNKNOWN # Default options COMMUNITY="public" HOSTNAME="127.0.0.1" TYPE="temp" WARNING=30 CRITICAL=35 # Option processing print_usage() { echo "Usage: ./check_etherprobe2 -H 127.0.0.1 -C public -t temp -w 30 -c 35" echo " $SCRIPTNAME -H ADDRESS" echo " $SCRIPTNAME -C STRING" echo " $SCRIPTNAME -t STRING" echo " $SCRIPTNAME -w INTEGER" echo " $SCRIPTNAME -c INTEGER" echo " $SCRIPTNAME -h" echo " $SCRIPTNAME -V" } print_version() { echo $SCRIPTNAME version $VERSION echo "" echo "This nagios plugin comes with ABSOLUTELY NO WARRANTY." echo "You may redistribute copies of this plugin under the terms of the GNU General Public License v2." } print_help() { print_version echo "" print_usage echo "" echo "Check the status of a ATAL Ethernetprobe2 temperature" echo "" echo "-H ADDRESS" echo " Name or IP address of host (default: 127.0.0.1)" echo "-C STRING" echo " Community name for the host's SNMP agent (default: public)" echo "-t STRING" echo " Different status (temp, tempfull)" echo "-w INTEGER" echo " Warning level for temperature in degrees (default: 30)" echo "-c INTEGER" echo " Critical level for temperature in degrees (default: 35)" echo "-h" echo " Print this help screen" echo "-V" echo " Print version and license information" echo "" echo "" echo "This plugin uses the 'snmpget' command and the 'snmpwalk' command included with the NET-SNMP package." echo "This plugin support performance data output." echo "If the percentage of the warning level and the critical level are set to 0, then the script returns an OK state." } while getopts H:C:t:w:c:hV OPT do case $OPT in H) HOSTNAME="$OPTARG" ;; C) COMMUNITY="$OPTARG" ;; t) TYPE="$OPTARG" ;; w) WARNING="$OPTARG" ;; c) CRITICAL="$OPTARG" ;; h) print_help exit $STATE_UNKNOWN ;; V) print_version exit $STATE_UNKNOWN ;; esac done # Plugin processing if [ $TYPE = "temp" ]; then CURRENT_TEMP=`$CMD_SNMPGET -t 2 -r 2 -v 1 -c $COMMUNITY -Ovq $HOSTNAME "${OID_CURRENT_TEMP}"`; if [ "$CURRENT_TEMP" -ge "$CRITICAL" ] ; then STATE=$STATE_CRITICAL; elif [ "$CURRENT_TEMP" -ge "$WARNING" ] ; then STATE=$STATE_WARNING; else STATE=$STATE_OK; fi DESCRIPTION="Temperature: $CURRENT_TEMP" elif [ $TYPE = "tempfull" ]; then CURRENT_TEMP_FULL=`$CMD_SNMPGET -t 2 -r 2 -v 1 -c $COMMUNITY -Ovq $HOSTNAME "${OID_CURRENT_TEMP_FULL}"`; if [ "$CURRENT_TEMP_FULL" -ge "$CRITICAL" ] ; then STATE=$STATE_CRITICAL; elif [ "$CURRENT_TEMP_FULL" -ge "$WARNING" ] ; then STATE=$STATE_WARNING; else STATE=$STATE_OK; fi DESCRIPTION="Temperature: $CURRENT_TEMP_FULL" fi echo $DESCRIPTION exit $STATE