-
Hahn Axel (hahn) authoredHahn Axel (hahn) authored
check_snmp_printer 2.83 KiB
#!/bin/env bash
# ============================================================
#
# Wrapper for check_snmp_printer plugin
#
# The reason behind this wrapper is detecting the snmp auth
# parameters by check_dnmp_includes which needs a snmp target
# to find its custom config.
#
# All given params will be sent to
# /usr/lib64/nagios/plugins/check_snmp_printer_v2.0.1
# except "-c <script>"
#
# TODO: IML like help
#
# USAGE
# check_snmp_printer -H <host|ip> --<what>
# check_snmp_printer -H <host|ip> -c <script> --<what>
#
# <host>|<ip> target to connect
# <what> what information will be shown
# --consum
# --messages
# --pagecount
# --trays
# <script> script to execute with full path
#
# ------------------------------------------------------------
# 2021-03-22 <axel.hahn@iml.unibe.ch> v0.1
# 2023-09-18 <axel.hahn@iml.unibe.ch> v0.2 snmpv3 support
# 2023-10-12 <axel.hahn@iml.unibe.ch> v0.3 parameter for custom script; detect debian
# ============================================================
# ------------------------------------------------------------
# CONFIG
# ------------------------------------------------------------
. $( dirname $0 )/inc_pluginfunctions
. $( dirname $0 )/check_snmp_includes
debug=0
# check='/usr/lib64/nagios/plugins/check_snmp_printer'
# updated script is taken from https://github.com/Tylan/check_snmp_printer/tree/master
nagiosDir='/usr/lib64/nagios/plugins'
myscript="check_snmp_printer_v2.0.1"
case "$( ph.getOS)" in
debian)
nagiosDir='/usr/lib/nagios/plugins'
;;
esac
# ------------------------------------------------------------
# MAIN
# ------------------------------------------------------------
sParams="$*"
# find host behind param -H
SNMPTARGET=$( echo $sParams | sed -Ee 's#.*\-H\ ([0-9a-z\.\-]*).*#\1#' )
# detect -c <script>
check=$( echo $sParams | sed -Ee 's#.*\-c\ ([0-9a-z\.\-_/]*).*#\1#' )
test "$check" = "$sParams" && check="${nagiosDir}/${myscript}"
test "$check" = "$sParams" || sParams=$( echo $sParams | sed -Ee 's#\-c\ ([0-9a-z\.\-_/]*)##' )
# find SNMPTARGET in config
test -z "$SNMPAUTH" && read_config
sParams+=" $SNMPAUTH"
what=$( echo $sParams | sed -Ee 's#.*\-\-([a-z]*).*#\1#' )
case "$what" in
consum)
what="Consumables"
;;
messages)
what="Messages of the printer"
;;
pagecount)
what="Number of printed pages"
;;
trays)
what="Status of trays for paper"
sParams="$sParams --nofeeder"
;;
esac
test "$debug" = "1" && ( echo "$what:"; echo calling $check $sParams ; echo )
$check $sParams -t $SNMPTIMEOUT
# ------------------------------------------------------------