#!/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 # ------------------------------------------------------------