Nagios Exchange
  • Home
  • Directory
  • About

Advanced Search

Build precise queries to find exactly what you need

Search Logic

Select compatible versions

Press ESC to close

Sign In Sign Up

Join our next live webinar: “Advanced Nagios Monitoring Techniques” – Register Now

Plugins4379Themes and Skins11Addons732Documentation283Graphics and Logos36View All Categories
LinuxSecuritySNMPFile SystemCloud
New Listings Recently Updated Listings Most Favored Listings Most Popular Listings Most Rated Listings Most Reviewed Listings
Random Project
Clustering and High-Availability check_proc_fd.sh: check process memory usage
RSS Feed
Newest Listings Updated Listings
Top Contributors
Julien DESMAREST (4)Davide Lemma (4)deskwork_itunes142 (4)Joerg Hoerter (3)TcoUpLoad (1)
See More
Newest Contributors
Community Member (51)Davide Lemma (4)Alarig Le Lay (1)Penn Rabb (1)Sean Falzon (1)
See More
Home > Timothy Crystal
TC

Timothy Crystal

@tcrystal

User Stats

Favorites0

Views

Projects0

No Projects Found
check_snmp_printer

check_snmp_canon

I modified this so it can be used to monitor Canon Imagerunner copiers. Here is the code: *************************************************** #!/bin/bash # check_snmp_printer # Description : Check the status of a printer # Version : 1.0 # Author : Yoann LAMY # Licence : GPLv2 # Commands CMD_BASENAME="/bin/basename" CMD_SNMPGET="/usr/bin/snmpget" CMD_SNMPWALK="/usr/bin/snmpwalk" CMD_GREP="/bin/grep" CMD_AWK="/bin/awk" 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 # Default OID (Printer-MIB) OID_NAME=".1.3.6.1.2.1.43.11.1.1.6.1" OID_TOTAL=".1.3.6.1.2.1.43.11.1.1.8.1" OID_STATUS=".1.3.6.1.2.1.43.11.1.1.9.1" OID_NAME_OTHER=".1.3.6.1.2.1.43.12.1.1.4.1" OID_TOTAL_OTHER=".1.3.6.1.2.1.43.10.2.1.9.1" OID_STATUS_OTHER=".1.3.6.1.2.1.43.10.2.1.10.1" OID_PAGE=".1.3.6.1.2.1.43.10.2.1.4.1.1" # Default variables DESCRIPTION="Unknown" STATE=$STATE_UNKNOWN # Default options COMMUNITY="public" HOSTNAME="127.0.0.1" TYPE="page" CONSUMMABLE="black" WARNING=0 CRITICAL=0 # Option processing print_usage() { echo "Usage: ./check_snmp_printer -H 127.0.0.1 -C public -t consummable -o black -w 85 -c 90" 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 "The nagios plugins come with ABSOLUTELY NO WARRANTY." echo "You may redistribute copies of the plugins under the terms of the GNU General Public License v2." } print_help() { print_version echo "" print_usage echo "" echo "Check the status of the printer" 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 " Check type (consummable, page) (default: page)" echo "-o STRING" echo " Consummable (BL,CY,MG,YE,WT,BD,CD,MD,YD,FU,AM) (default: black)" echo "-w INTEGER" echo " Warning level for consummable in percent (default: 0)" echo "-c INTEGER" echo " Critical level for consummable in percent (default: 0)" 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 '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 0, then the script returns a state OK." } while getopts H:C:t:o:w:c:hV OPT do case $OPT in H) HOSTNAME="$OPTARG" ;; C) COMMUNITY="$OPTARG" ;; t) TYPE="$OPTARG" ;; o) CONSUMMABLE="$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 = "consummable" ]; then # Check the consummable of the printer (Usage : ./check_snmp_printer -H 127.0.0.1 -C public -t consummable -o BL -w 85 -c 90) CONSUMMABLE_NAME=$CONSUMMABLE if [ $CONSUMMABLE = "black" ]; then CONSUMMABLE_NAME="black|cartouche|toner" fi if [ $CONSUMMABLE = "BL" ]; then CONSUMMABLE_ID="1" fi if [ $CONSUMMABLE = "CY" ]; then CONSUMMABLE_ID="2" fi if [ $CONSUMMABLE = "MG" ]; then CONSUMMABLE_ID="3" fi if [ $CONSUMMABLE = "YE" ]; then CONSUMMABLE_ID="4" fi if [ $CONSUMMABLE = "WT" ]; then CONSUMMABLE_ID="5" fi if [ $CONSUMMABLE = "BD" ]; then CONSUMMABLE_ID="6" fi if [ $CONSUMMABLE = "CD" ]; then CONSUMMABLE_ID="7" fi if [ $CONSUMMABLE = "MD" ]; then CONSUMMABLE_ID="8" fi if [ $CONSUMMABLE = "YD" ]; then CONSUMMABLE_ID="9" fi if [ $CONSUMMABLE = "FU" ]; then CONSUMMABLE_ID="10" fi if [ $CONSUMMABLE = "AM" ]; then CONSUMMABLE_ID="11" fi if [ -n "$CONSUMMABLE_ID" ]; then CONSUMMABLE_TOTAL=`$CMD_SNMPGET -t 2 -r 2 -v 1 -c $COMMUNITY -Ovq $HOSTNAME ${OID_TOTAL}.${CONSUMMABLE_ID}` CONSUMMABLE_STATUS=`$CMD_SNMPGET -t 2 -r 2 -v 1 -c $COMMUNITY -Ovq $HOSTNAME ${OID_STATUS}.${CONSUMMABLE_ID}` if [ ${CONSUMMABLE_TOTAL: 0:1} = "-" ]; then CONSUMMABLE_TOTAL=`$CMD_SNMPGET -t 2 -r 2 -v 1 -c $COMMUNITY -Ovq $HOSTNAME ${OID_TOTAL_OTHER}.${CONSUMMABLE_ID}` CONSUMMABLE_STATUS=`$CMD_SNMPGET -t 2 -r 2 -v 1 -c $COMMUNITY -Ovq $HOSTNAME ${OID_STATUS_OTHER}.${CONSUMMABLE_ID}` fi if [ -n "$CONSUMMABLE_TOTAL" ] && [ -n "$CONSUMMABLE_STATUS" ]; then CONSUMMABLE_POURCENT=`$CMD_EXPR ( $CONSUMMABLE_STATUS * 100 ) / ( $CONSUMMABLE_TOTAL )` CONSUMMABLE_USED_POURCENT=`$CMD_EXPR 100 - $CONSUMMABLE_POURCENT` if [ $WARNING != 0 ] || [ $CRITICAL != 0 ]; then if [ $CONSUMMABLE_USED_POURCENT -gt $CRITICAL ] && [ $CRITICAL != 0 ]; then STATE=$STATE_CRITICAL elif [ $CONSUMMABLE_USED_POURCENT -gt $WARNING ] && [ $WARNING != 0 ]; then STATE=$STATE_WARNING else STATE=$STATE_OK fi else STATE=$STATE_OK fi case "$CONSUMMABLE" in black) CONSUMMABLE_NAME="of the black cartridge" ;; cyan) CONSUMMABLE_NAME="of the cyan cartridge" ;; magenta) CONSUMMABLE_NAME="of the magenta cartridge" ;; yellow) CONSUMMABLE_NAME="of the yellow cartridge" ;; drum) CONSUMMABLE_NAME="of the printing device" ;; *) CONSUMMABLE_NAME="of the consummable" esac DESCRIPTION="Utilisation $CONSUMMABLE_NAME : ${CONSUMMABLE_USED_POURCENT}% | cons_used=${CONSUMMABLE_USED_POURCENT};$WARNING;$CRITICAL;0" else DESCRIPTION="Printer is waiting" fi fi elif [ $TYPE = "page" ]; then # Check page number of the printer (Usage : ./check_snmp_printer -H 127.0.0.1 -C public -t page) PAGES=`$CMD_SNMPGET -t 2 -r 2 -v 1 -c $COMMUNITY -Ovq $HOSTNAME $OID_PAGE` if [ -n "$PAGES" ]; then DESCRIPTION="Page number : $PAGES | pages=$PAGES;0;0;0" STATE=$STATE_OK fi fi echo $DESCRIPTION exit $STATE

Reviewed 5 years ago

No Favorites Found

Copyright © 2009-2025 Nagios Enterprises, LLC. All rights reserved.

Privacy PolicyTerms of UseTrademarks