From 439b93049ddcfa28d7d3b8dd8085770c613aabc3 Mon Sep 17 00:00:00 2001 From: Jan Wagner Date: Fri, 6 Jan 2017 16:54:29 +0100 Subject: Fixing shellcheck SC2006 --- plugins-scripts/check_log.sh | 12 ++++---- plugins-scripts/check_oracle.sh | 64 ++++++++++++++++++++-------------------- plugins-scripts/check_sensors.sh | 6 ++-- 3 files changed, 41 insertions(+), 41 deletions(-) (limited to 'plugins-scripts') diff --git a/plugins-scripts/check_log.sh b/plugins-scripts/check_log.sh index d28c8d0a..45992687 100755 --- a/plugins-scripts/check_log.sh +++ b/plugins-scripts/check_log.sh @@ -60,8 +60,8 @@ PATH="@TRUSTED_PATH@" export PATH -PROGNAME=`basename $0` -PROGPATH=`echo $0 | sed -e 's,[\\/][^\\/][^\\/]*$,,'` +PROGNAME=$(basename $0) +PROGPATH=$(echo $0 | sed -e 's,[\\/][^\\/][^\\/]*$,,') REVISION="@NP_VERSION@" . $PROGPATH/utils.sh @@ -180,9 +180,9 @@ fi # The temporary file that the script should use while # processing the log file. if [ -x /bin/mktemp ]; then - tempdiff=`/bin/mktemp /tmp/check_log.XXXXXXXXXX` + tempdiff=$(/bin/mktemp /tmp/check_log.XXXXXXXXXX) else - tempdiff=`/bin/date '+%H%M%S'` + tempdiff=$(/bin/date '+%H%M%S') tempdiff="/tmp/check_log.${tempdiff}" touch $tempdiff chmod 600 $tempdiff @@ -191,10 +191,10 @@ fi diff $logfile $oldlog | grep -v "^>" > $tempdiff # Count the number of matching log entries we have -count=`grep -c "$query" $tempdiff` +count=$(grep -c "$query" $tempdiff) # Get the last matching entry in the diff file -lastentry=`grep "$query" $tempdiff | tail -1` +lastentry=$(grep "$query" $tempdiff | tail -1) rm -f $tempdiff cat $logfile > $oldlog diff --git a/plugins-scripts/check_oracle.sh b/plugins-scripts/check_oracle.sh index 96078aca..d4d3aae0 100755 --- a/plugins-scripts/check_oracle.sh +++ b/plugins-scripts/check_oracle.sh @@ -8,8 +8,8 @@ PATH="@TRUSTED_PATH@" export PATH -PROGNAME=`basename $0` -PROGPATH=`echo $0 | sed -e 's,[\\/][^\\/][^\\/]*$,,'` +PROGNAME=$(basename $0) +PROGPATH=$(echo $0 | sed -e 's,[\\/][^\\/][^\\/]*$,,') REVISION="@NP_VERSION@" . $PROGPATH/utils.sh @@ -135,8 +135,8 @@ export ORACLE_HOME PATH LD_LIBRARY_PATH case "$cmd" in --tns) - tnschk=` tnsping $2` - tnschk2=` echo $tnschk | grep -c OK` + tnschk=$(tnsping $2) + tnschk2=$(echo $tnschk | grep -c OK) if [ ${tnschk2} -eq 1 ] ; then tnschk3=${tnschk##*(}; tnschk3=${tnschk3%)*} echo "OK - reply time ${tnschk3} from $2" @@ -165,7 +165,7 @@ case "$cmd" in }' ;; --db) - pmonchk=`ps -ef | grep -v grep | grep -E -c "(asm|ora)_pmon_${2}$"` + pmonchk=$(ps -ef | grep -v grep | grep -E -c "(asm|ora)_pmon_${2}$") if [ ${pmonchk} -ge 1 ] ; then echo "${2} OK - ${pmonchk} PMON process(es) running" exit $STATE_OK @@ -181,25 +181,25 @@ case "$cmd" in fi ;; --login) - loginchk=`sqlplus dummy/user@$2 < /dev/null` - loginchk2=` echo $loginchk | grep -c ORA-01017` + loginchk=$(sqlplus dummy/user@$2 < /dev/null) + loginchk2=$(echo $loginchk | grep -c ORA-01017) if [ ${loginchk2} -eq 1 ] ; then echo "OK - dummy login connected" exit $STATE_OK else - loginchk3=` echo "$loginchk" | grep "ORA-" | head -1` + loginchk3=$(echo "$loginchk" | grep "ORA-" | head -1) echo "CRITICAL - $loginchk3" exit $STATE_CRITICAL fi ;; --connect) - connectchk=`sqlplus $2 < /dev/null` - connectchk2=` echo $connectchk | grep -c ORA-` + connectchk=$(sqlplus $2 < /dev/null) + connectchk2=$(echo $connectchk | grep -c ORA-) if [ ${connectchk2} -eq 0 ] ; then echo "OK - login successful" exit $STATE_OK else - connectchk3=` echo "$connectchk" | grep "ORA-" | head -1` + connectchk3=$(echo "$connectchk" | grep "ORA-" | head -1) echo "CRITICAL - $connectchk3" exit $STATE_CRITICAL fi @@ -219,29 +219,29 @@ and dbg.name='db block gets' and cg.name='consistent gets'; EOF` - if [ -n "`echo $result | grep ORA-`" ] ; then - error=` echo "$result" | grep "ORA-" | head -1` - echo "CRITICAL - $error" - exit $STATE_CRITICAL + if [ -n "$(echo $result | grep ORA-)" ] ; then + error=$(echo "$result" | grep "ORA-" | head -1) + echo "CRITICAL - $error" + exit $STATE_CRITICAL fi - buf_hr=`echo "$result" | awk '/^[0-9\. \t]+$/ {print int($1)}'` - buf_hrx=`echo "$result" | awk '/^[0-9\. \t]+$/ {print $1}'` + buf_hr=$(echo "$result" | awk '/^[0-9\. \t]+$/ {print int($1)}') + buf_hrx=$(echo "$result" | awk '/^[0-9\. \t]+$/ {print $1}') result=`sqlplus -s ${3}/${4}@${2} << EOF set pagesize 0 set numf '9999999.99' select sum(lc.pins)/(sum(lc.pins)+sum(lc.reloads))*100 from v\\$librarycache lc; EOF` - - if [ -n "`echo $result | grep ORA-`" ] ; then - error=` echo "$result" | grep "ORA-" | head -1` - echo "CRITICAL - $error" - exit $STATE_CRITICAL + + if [ -n "$(echo $result | grep ORA-)" ] ; then + error=$(echo "$result" | grep "ORA-" | head -1) + echo "CRITICAL - $error" + exit $STATE_CRITICAL fi - lib_hr=`echo "$result" | awk '/^[0-9\. \t]+$/ {print int($1)}'` - lib_hrx=`echo "$result" | awk '/^[0-9\. \t]+$/ {print $1}'` + lib_hr=$(echo "$result" | awk '/^[0-9\. \t]+$/ {print int($1)}') + lib_hrx=$(echo "$result" | awk '/^[0-9\. \t]+$/ {print $1}') if [ $buf_hr -le ${5} -o $lib_hr -le ${5} ] ; then echo "${2} CRITICAL - Cache Hit Rates: $lib_hrx% Lib -- $buf_hrx% Buff|lib=$lib_hrx%;${6};${5};0;100 buffer=$buf_hrx%;${6};${5};0;100" @@ -273,16 +273,16 @@ from dba_free_space group by tablespace_name) B ON a.tablespace_name=b.tablespace_name WHERE a.tablespace_name='${5}'; EOF` - if [ -n "`echo $result | grep ORA-`" ] ; then - error=` echo "$result" | grep "ORA-" | head -1` - echo "CRITICAL - $error" - exit $STATE_CRITICAL + if [ -n "$(echo $result | grep ORA-)" ] ; then + error=$(echo "$result" | grep "ORA-" | head -1) + echo "CRITICAL - $error" + exit $STATE_CRITICAL fi - ts_free=`echo "$result" | awk '/^[ 0-9\.\t ]+$/ {print int($1)}'` - ts_total=`echo "$result" | awk '/^[ 0-9\.\t ]+$/ {print int($2)}'` - ts_pct=`echo "$result" | awk '/^[ 0-9\.\t ]+$/ {print int($3)}'` - ts_pctx=`echo "$result" | awk '/^[ 0-9\.\t ]+$/ {print $3}'` + ts_free=$(echo "$result" | awk '/^[ 0-9\.\t ]+$/ {print int($1)}') + ts_total=$(echo "$result" | awk '/^[ 0-9\.\t ]+$/ {print int($2)}') + ts_pct=$(echo "$result" | awk '/^[ 0-9\.\t ]+$/ {print int($3)}') + ts_pctx=$(echo "$result" | awk '/^[ 0-9\.\t ]+$/ {print $3}') if [ "$ts_free" -eq 0 -a "$ts_total" -eq 0 -a "$ts_pct" -eq 0 ] ; then echo "No data returned by Oracle - tablespace $5 not found?" exit $STATE_UNKNOWN diff --git a/plugins-scripts/check_sensors.sh b/plugins-scripts/check_sensors.sh index f7428301..5348b175 100755 --- a/plugins-scripts/check_sensors.sh +++ b/plugins-scripts/check_sensors.sh @@ -2,8 +2,8 @@ PATH="@TRUSTED_PATH@" export PATH -PROGNAME=`basename $0` -PROGPATH=`echo $0 | sed -e 's,[\\/][^\\/][^\\/]*$,,'` +PROGNAME=$(basename $0) +PROGPATH=$(echo $0 | sed -e 's,[\\/][^\\/][^\\/]*$,,') REVISION="@NP_VERSION@" . $PROGPATH/utils.sh @@ -41,7 +41,7 @@ case "$1" in exit $STATE_OK ;; *) - sensordata=`sensors 2>&1` + sensordata=$(sensors 2>&1) status=$? if test ${status} -eq 127; then text="SENSORS UNKNOWN - command not found (did you install lmsensors?)" -- cgit v1.2.3-74-g34f1 From 5f3232f00d07dac166b48acd6d0c92ec1ff64901 Mon Sep 17 00:00:00 2001 From: Jan Wagner Date: Fri, 6 Jan 2017 17:43:22 +0100 Subject: Fixing shellcheck SC2086 --- plugins-scripts/check_log.sh | 54 +++++----- plugins-scripts/check_oracle.sh | 206 +++++++++++++++++++-------------------- plugins-scripts/check_sensors.sh | 30 +++--- 3 files changed, 145 insertions(+), 145 deletions(-) (limited to 'plugins-scripts') diff --git a/plugins-scripts/check_log.sh b/plugins-scripts/check_log.sh index 45992687..8f76b1b5 100755 --- a/plugins-scripts/check_log.sh +++ b/plugins-scripts/check_log.sh @@ -60,11 +60,11 @@ PATH="@TRUSTED_PATH@" export PATH -PROGNAME=$(basename $0) -PROGPATH=$(echo $0 | sed -e 's,[\\/][^\\/][^\\/]*$,,') +PROGNAME=$(basename "$0") +PROGPATH=$(echo "$0" | sed -e 's,[\\/][^\\/][^\\/]*$,,') REVISION="@NP_VERSION@" -. $PROGPATH/utils.sh +. "$PROGPATH"/utils.sh print_usage() { echo "Usage: $PROGNAME -F logfile -O oldlog -q query" @@ -73,7 +73,7 @@ print_usage() { } print_help() { - print_revision $PROGNAME $REVISION + print_revision "$PROGNAME" "$REVISION" echo "" print_usage echo "" @@ -87,7 +87,7 @@ print_help() { if [ $# -lt 1 ]; then print_usage - exit $STATE_UNKNOWN + exit "$STATE_UNKNOWN" fi # Grab the command line arguments @@ -100,19 +100,19 @@ while test -n "$1"; do case "$1" in --help) print_help - exit $STATE_OK + exit "$STATE_OK" ;; -h) print_help - exit $STATE_OK + exit "$STATE_OK" ;; --version) - print_revision $PROGNAME $REVISION - exit $STATE_OK + print_revision "$PROGNAME" "$REVISION" + exit "$STATE_OK" ;; -V) - print_revision $PROGNAME $REVISION - exit $STATE_OK + print_revision "$PROGNAME" "$REVISION" + exit "$STATE_OK" ;; --filename) logfile=$2 @@ -149,7 +149,7 @@ while test -n "$1"; do *) echo "Unknown argument: $1" print_usage - exit $STATE_UNKNOWN + exit "$STATE_UNKNOWN" ;; esac shift @@ -157,22 +157,22 @@ done # If the source log file doesn't exist, exit -if [ ! -e $logfile ]; then +if [ ! -e "$logfile" ]; then echo "Log check error: Log file $logfile does not exist!" - exit $STATE_UNKNOWN -elif [ ! -r $logfile ] ; then + exit "$STATE_UNKNOWN" +elif [ ! -r "$logfile" ] ; then echo "Log check error: Log file $logfile is not readable!" - exit $STATE_UNKNOWN + exit "$STATE_UNKNOWN" fi # If the old log file doesn't exist, this must be the first time # we're running this test, so copy the original log file over to # the old diff file and exit -if [ ! -e $oldlog ]; then - cat $logfile > $oldlog +if [ ! -e "$oldlog" ]; then + cat "$logfile" > "$oldlog" echo "Log check data initialized..." - exit $STATE_OK + exit "$STATE_OK" fi # The old log file exists, so compare it to the original log now @@ -184,20 +184,20 @@ if [ -x /bin/mktemp ]; then else tempdiff=$(/bin/date '+%H%M%S') tempdiff="/tmp/check_log.${tempdiff}" - touch $tempdiff - chmod 600 $tempdiff + touch "$tempdiff" + chmod 600 "$tempdiff" fi -diff $logfile $oldlog | grep -v "^>" > $tempdiff +diff "$logfile" "$oldlog" | grep -v "^>" > "$tempdiff" # Count the number of matching log entries we have -count=$(grep -c "$query" $tempdiff) +count=$(grep -c "$query" "$tempdiff") # Get the last matching entry in the diff file -lastentry=$(grep "$query" $tempdiff | tail -1) +lastentry=$(grep "$query" "$tempdiff" | tail -1) -rm -f $tempdiff -cat $logfile > $oldlog +rm -f "$tempdiff" +cat "$logfile" > "$oldlog" if [ "$count" = "0" ]; then # no matches, exit with no error echo "Log check ok - 0 pattern matches found" @@ -207,4 +207,4 @@ else # Print total matche count and the last entry we found exitstatus=$STATE_CRITICAL fi -exit $exitstatus +exit "$exitstatus" diff --git a/plugins-scripts/check_oracle.sh b/plugins-scripts/check_oracle.sh index d4d3aae0..0e751f3f 100755 --- a/plugins-scripts/check_oracle.sh +++ b/plugins-scripts/check_oracle.sh @@ -8,11 +8,11 @@ PATH="@TRUSTED_PATH@" export PATH -PROGNAME=$(basename $0) -PROGPATH=$(echo $0 | sed -e 's,[\\/][^\\/][^\\/]*$,,') +PROGNAME=$(basename "$0") +PROGPATH=$(echo "$0" | sed -e 's,[\\/][^\\/][^\\/]*$,,') REVISION="@NP_VERSION@" -. $PROGPATH/utils.sh +. "$PROGPATH"/utils.sh print_usage() { @@ -29,7 +29,7 @@ print_usage() { } print_help() { - print_revision $PROGNAME $REVISION + print_revision "$PROGNAME" "$REVISION" echo "" print_usage echo "" @@ -87,47 +87,47 @@ esac case "$cmd" in --help) print_help - exit $STATE_OK + exit "$STATE_OK" ;; -h) print_help - exit $STATE_OK + exit "$STATE_OK" ;; --version) - print_revision $PROGNAME $REVISION - exit $STATE_OK + print_revision "$PROGNAME" "$REVISION" + exit "$STATE_OK" ;; -V) - print_revision $PROGNAME $REVISION - exit $STATE_OK + print_revision "$PROGNAME" "$REVISION" + exit "$STATE_OK" ;; esac # Hunt down a reasonable ORACLE_HOME if [ -z "$ORACLE_HOME" ] ; then - # Adjust to taste - for oratab in /var/opt/oracle/oratab /etc/oratab - do - [ ! -f $oratab ] && continue - ORACLE_HOME=`IFS=: - while read SID ORACLE_HOME junk; - do - if [ "$SID" = "$2" -o "$SID" = "*" ] ; then - echo $ORACLE_HOME; - exit; - fi; - done < $oratab` - [ -n "$ORACLE_HOME" ] && break - done + # Adjust to taste + for oratab in /var/opt/oracle/oratab /etc/oratab + do + [ ! -f $oratab ] && continue + ORACLE_HOME=`IFS=: + while read SID ORACLE_HOME junk; + do + if [ "$SID" = "$2" -o "$SID" = "*" ] ; then + echo "$ORACLE_HOME"; + exit; + fi; + done < $oratab` + [ -n "$ORACLE_HOME" ] && break + done fi # Last resort -[ -z "$ORACLE_HOME" -a -d $PROGPATH/oracle ] && ORACLE_HOME=$PROGPATH/oracle +[ -z "$ORACLE_HOME" -a -d "$PROGPATH"/oracle ] && ORACLE_HOME=$PROGPATH/oracle if [ "$cmd" != "--db" ]; then - if [ -z "$ORACLE_HOME" -o ! -d "$ORACLE_HOME" ] ; then - echo "Cannot determine ORACLE_HOME for sid $2" - exit $STATE_UNKNOWN - fi + if [ -z "$ORACLE_HOME" -o ! -d "$ORACLE_HOME" ] ; then + echo "Cannot determine ORACLE_HOME for sid $2" + exit "$STATE_UNKNOWN" + fi fi PATH=$PATH:$ORACLE_HOME/bin LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$ORACLE_HOME/lib @@ -135,81 +135,81 @@ export ORACLE_HOME PATH LD_LIBRARY_PATH case "$cmd" in --tns) - tnschk=$(tnsping $2) - tnschk2=$(echo $tnschk | grep -c OK) - if [ ${tnschk2} -eq 1 ] ; then - tnschk3=${tnschk##*(}; tnschk3=${tnschk3%)*} - echo "OK - reply time ${tnschk3} from $2" - exit $STATE_OK + tnschk=$(tnsping "$2") + tnschk2=$(echo "$tnschk" | grep -c OK) + if [ "${tnschk2}" -eq 1 ] ; then + tnschk3=${tnschk##*(}; tnschk3=${tnschk3%)*} + echo "OK - reply time ${tnschk3} from $2" + exit "$STATE_OK" else - echo "No TNS Listener on $2" - exit $STATE_CRITICAL + echo "No TNS Listener on $2" + exit "$STATE_CRITICAL" fi ;; --oranames) - namesctl status $2 | awk ' + namesctl status "$2" | awk ' /Server has been running for:/ { - msg = "OK: Up" - for (i = 6; i <= NF; i++) { - msg = msg " " $i - } - status = '$STATE_OK' + msg = "OK: Up" + for (i = 6; i <= NF; i++) { + msg = msg " " $i + } + status = '"$STATE_OK"' } /error/ { - msg = "CRITICAL: " $0 - status = '$STATE_CRITICAL' + msg = "CRITICAL: " $0 + status = '"$STATE_CRITICAL"' } END { - print msg - exit status + print msg + exit status }' ;; --db) pmonchk=$(ps -ef | grep -v grep | grep -E -c "(asm|ora)_pmon_${2}$") - if [ ${pmonchk} -ge 1 ] ; then - echo "${2} OK - ${pmonchk} PMON process(es) running" - exit $STATE_OK + if [ "${pmonchk}" -ge 1 ] ; then + echo "${2} OK - ${pmonchk} PMON process(es) running" + exit "$STATE_OK" #if [ -f $ORACLE_HOME/dbs/sga*${2}* ] ; then - #if [ ${pmonchk} -eq 1 ] ; then + #if [ ${pmonchk} -eq 1 ] ; then #utime=`ls -la $ORACLE_HOME/dbs/sga*$2* | cut -c 43-55` - #echo "${2} OK - running since ${utime}" - #exit $STATE_OK - #fi + #echo "${2} OK - running since ${utime}" + #exit $STATE_OK + #fi else - echo "${2} Database is DOWN" - exit $STATE_CRITICAL + echo "${2} Database is DOWN" + exit "$STATE_CRITICAL" fi ;; --login) - loginchk=$(sqlplus dummy/user@$2 < /dev/null) - loginchk2=$(echo $loginchk | grep -c ORA-01017) - if [ ${loginchk2} -eq 1 ] ; then - echo "OK - dummy login connected" - exit $STATE_OK + loginchk=$(sqlplus dummy/user@"$2" < /dev/null) + loginchk2=$(echo "$loginchk" | grep -c ORA-01017) + if [ "${loginchk2}" -eq 1 ] ; then + echo "OK - dummy login connected" + exit "$STATE_OK" else - loginchk3=$(echo "$loginchk" | grep "ORA-" | head -1) - echo "CRITICAL - $loginchk3" - exit $STATE_CRITICAL + loginchk3=$(echo "$loginchk" | grep "ORA-" | head -1) + echo "CRITICAL - $loginchk3" + exit "$STATE_CRITICAL" fi ;; --connect) - connectchk=$(sqlplus $2 < /dev/null) - connectchk2=$(echo $connectchk | grep -c ORA-) - if [ ${connectchk2} -eq 0 ] ; then - echo "OK - login successful" - exit $STATE_OK + connectchk=$(sqlplus "$2" < /dev/null) + connectchk2=$(echo "$connectchk" | grep -c ORA-) + if [ "${connectchk2}" -eq 0 ] ; then + echo "OK - login successful" + exit "$STATE_OK" else - connectchk3=$(echo "$connectchk" | grep "ORA-" | head -1) - echo "CRITICAL - $connectchk3" - exit $STATE_CRITICAL + connectchk3=$(echo "$connectchk" | grep "ORA-" | head -1) + echo "CRITICAL - $connectchk3" + exit "$STATE_CRITICAL" fi ;; --cache) - if [ ${5} -gt ${6} ] ; then - echo "UNKNOWN - Warning level is less then Crit" - exit $STATE_UNKNOWN + if [ "${5}" -gt "${6}" ] ; then + echo "UNKNOWN - Warning level is less then Crit" + exit "$STATE_UNKNOWN" fi - result=`sqlplus -s ${3}/${4}@${2} << EOF + result=`sqlplus -s "${3}"/"${4}"@"${2}" << EOF set pagesize 0 set numf '9999999.99' select (1-(pr.value/(dbg.value+cg.value)))*100 @@ -219,48 +219,48 @@ and dbg.name='db block gets' and cg.name='consistent gets'; EOF` - if [ -n "$(echo $result | grep ORA-)" ] ; then + if [ -n "$(echo "$result" | grep ORA-)" ] ; then error=$(echo "$result" | grep "ORA-" | head -1) echo "CRITICAL - $error" - exit $STATE_CRITICAL + exit "$STATE_CRITICAL" fi buf_hr=$(echo "$result" | awk '/^[0-9\. \t]+$/ {print int($1)}') buf_hrx=$(echo "$result" | awk '/^[0-9\. \t]+$/ {print $1}') - result=`sqlplus -s ${3}/${4}@${2} << EOF + result=`sqlplus -s "${3}"/"${4}"@"${2}" << EOF set pagesize 0 set numf '9999999.99' select sum(lc.pins)/(sum(lc.pins)+sum(lc.reloads))*100 from v\\$librarycache lc; EOF` - if [ -n "$(echo $result | grep ORA-)" ] ; then + if [ -n "$(echo "$result" | grep ORA-)" ] ; then error=$(echo "$result" | grep "ORA-" | head -1) echo "CRITICAL - $error" - exit $STATE_CRITICAL + exit "$STATE_CRITICAL" fi lib_hr=$(echo "$result" | awk '/^[0-9\. \t]+$/ {print int($1)}') lib_hrx=$(echo "$result" | awk '/^[0-9\. \t]+$/ {print $1}') - if [ $buf_hr -le ${5} -o $lib_hr -le ${5} ] ; then - echo "${2} CRITICAL - Cache Hit Rates: $lib_hrx% Lib -- $buf_hrx% Buff|lib=$lib_hrx%;${6};${5};0;100 buffer=$buf_hrx%;${6};${5};0;100" - exit $STATE_CRITICAL + if [ "$buf_hr" -le "${5}" -o "$lib_hr" -le "${5}" ] ; then + echo "${2} CRITICAL - Cache Hit Rates: $lib_hrx% Lib -- $buf_hrx% Buff|lib=$lib_hrx%;${6};${5};0;100 buffer=$buf_hrx%;${6};${5};0;100" + exit "$STATE_CRITICAL" fi - if [ $buf_hr -le ${6} -o $lib_hr -le ${6} ] ; then - echo "${2} WARNING - Cache Hit Rates: $lib_hrx% Lib -- $buf_hrx% Buff|lib=$lib_hrx%;${6};${5};0;100 buffer=$buf_hrx%;${6};${5};0;100" - exit $STATE_WARNING + if [ "$buf_hr" -le "${6}" -o "$lib_hr" -le "${6}" ] ; then + echo "${2} WARNING - Cache Hit Rates: $lib_hrx% Lib -- $buf_hrx% Buff|lib=$lib_hrx%;${6};${5};0;100 buffer=$buf_hrx%;${6};${5};0;100" + exit "$STATE_WARNING" fi echo "${2} OK - Cache Hit Rates: $lib_hrx% Lib -- $buf_hrx% Buff|lib=$lib_hrx%;${6};${5};0;100 buffer=$buf_hrx%;${6};${5};0;100" - exit $STATE_OK + exit "$STATE_OK" ;; --tablespace) - if [ ${6} -lt ${7} ] ; then - echo "UNKNOWN - Warning level is more then Crit" - exit $STATE_UNKNOWN + if [ "${6}" -lt "${7}" ] ; then + echo "UNKNOWN - Warning level is more then Crit" + exit "$STATE_UNKNOWN" fi - result=`sqlplus -s ${3}/${4}@${2} << EOF + result=`sqlplus -s "${3}"/"${4}"@"${2}" << EOF set pagesize 0 set numf '9999999.99' select NVL(b.free,0.0),a.total,100 - trunc(NVL(b.free,0.0)/a.total * 1000) / 10 prc @@ -273,10 +273,10 @@ from dba_free_space group by tablespace_name) B ON a.tablespace_name=b.tablespace_name WHERE a.tablespace_name='${5}'; EOF` - if [ -n "$(echo $result | grep ORA-)" ] ; then + if [ -n "$(echo "$result" | grep ORA-)" ] ; then error=$(echo "$result" | grep "ORA-" | head -1) echo "CRITICAL - $error" - exit $STATE_CRITICAL + exit "$STATE_CRITICAL" fi ts_free=$(echo "$result" | awk '/^[ 0-9\.\t ]+$/ {print int($1)}') @@ -285,20 +285,20 @@ EOF` ts_pctx=$(echo "$result" | awk '/^[ 0-9\.\t ]+$/ {print $3}') if [ "$ts_free" -eq 0 -a "$ts_total" -eq 0 -a "$ts_pct" -eq 0 ] ; then echo "No data returned by Oracle - tablespace $5 not found?" - exit $STATE_UNKNOWN + exit "$STATE_UNKNOWN" fi - if [ "$ts_pct" -ge ${6} ] ; then - echo "${2} : ${5} CRITICAL - $ts_pctx% used [ $ts_free / $ts_total MB available ]|${5}=$ts_pctx%;${7};${6};0;100" - exit $STATE_CRITICAL + if [ "$ts_pct" -ge "${6}" ] ; then + echo "${2} : ${5} CRITICAL - $ts_pctx% used [ $ts_free / $ts_total MB available ]|${5}=$ts_pctx%;${7};${6};0;100" + exit "$STATE_CRITICAL" fi - if [ "$ts_pct" -ge ${7} ] ; then - echo "${2} : ${5} WARNING - $ts_pctx% used [ $ts_free / $ts_total MB available ]|${5}=$ts_pctx%;${7};${6};0;100" - exit $STATE_WARNING + if [ "$ts_pct" -ge "${7}" ] ; then + echo "${2} : ${5} WARNING - $ts_pctx% used [ $ts_free / $ts_total MB available ]|${5}=$ts_pctx%;${7};${6};0;100" + exit "$STATE_WARNING" fi echo "${2} : ${5} OK - $ts_pctx% used [ $ts_free / $ts_total MB available ]|${5}=$ts_pctx%;${7};${6};0;100" - exit $STATE_OK + exit "$STATE_OK" ;; *) print_usage - exit $STATE_UNKNOWN + exit "$STATE_UNKNOWN" esac diff --git a/plugins-scripts/check_sensors.sh b/plugins-scripts/check_sensors.sh index 5348b175..9a6cf5de 100755 --- a/plugins-scripts/check_sensors.sh +++ b/plugins-scripts/check_sensors.sh @@ -2,43 +2,43 @@ PATH="@TRUSTED_PATH@" export PATH -PROGNAME=$(basename $0) -PROGPATH=$(echo $0 | sed -e 's,[\\/][^\\/][^\\/]*$,,') +PROGNAME=$(basename "$0") +PROGPATH=$(echo "$0" | sed -e 's,[\\/][^\\/][^\\/]*$,,') REVISION="@NP_VERSION@" -. $PROGPATH/utils.sh +. "$PROGPATH"/utils.sh print_usage() { echo "Usage: $PROGNAME" [--ignore-fault] } print_help() { - print_revision $PROGNAME $REVISION + print_revision "$PROGNAME" "$REVISION" echo "" print_usage echo "" echo "This plugin checks hardware status using the lm_sensors package." echo "" support - exit $STATE_OK + exit "$STATE_OK" } case "$1" in --help) print_help - exit $STATE_OK + exit "$STATE_OK" ;; -h) print_help - exit $STATE_OK + exit "$STATE_OK" ;; --version) - print_revision $PROGNAME $REVISION - exit $STATE_OK + print_revision "$PROGNAME" "$REVISION" + exit "$STATE_OK" ;; -V) - print_revision $PROGNAME $REVISION - exit $STATE_OK + print_revision "$PROGNAME" "$REVISION" + exit "$STATE_OK" ;; *) sensordata=$(sensors 2>&1) @@ -49,10 +49,10 @@ case "$1" in elif test ${status} -ne 0; then text="WARNING - sensors returned state $status" exit=$STATE_WARNING - elif echo ${sensordata} | egrep ALARM > /dev/null; then + elif echo "${sensordata}" | egrep ALARM > /dev/null; then text="SENSOR CRITICAL - Sensor alarm detected!" exit=$STATE_CRITICAL - elif echo ${sensordata} | egrep FAULT > /dev/null \ + elif echo "${sensordata}" | egrep FAULT > /dev/null \ && test "$1" != "-i" -a "$1" != "--ignore-fault"; then text="SENSOR UNKNOWN - Sensor reported fault" exit=$STATE_UNKNOWN @@ -63,8 +63,8 @@ case "$1" in echo "$text" if test "$1" = "-v" -o "$1" = "--verbose"; then - echo ${sensordata} + echo "${sensordata}" fi - exit $exit + exit "$exit" ;; esac -- cgit v1.2.3-74-g34f1 From 1204d7fe56c9f35af6500f5ddbae733a622fb63d Mon Sep 17 00:00:00 2001 From: Jan Wagner Date: Fri, 6 Jan 2017 17:56:03 +0100 Subject: Fixing shellcheck SC2009 This requires pgrep from the procps package. --- plugins-scripts/check_oracle.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'plugins-scripts') diff --git a/plugins-scripts/check_oracle.sh b/plugins-scripts/check_oracle.sh index 0e751f3f..70a3fefa 100755 --- a/plugins-scripts/check_oracle.sh +++ b/plugins-scripts/check_oracle.sh @@ -165,7 +165,7 @@ case "$cmd" in }' ;; --db) - pmonchk=$(ps -ef | grep -v grep | grep -E -c "(asm|ora)_pmon_${2}$") + pmonchk=$(pgrep -f "(asm|ora)_pmon_${2}$") if [ "${pmonchk}" -ge 1 ] ; then echo "${2} OK - ${pmonchk} PMON process(es) running" exit "$STATE_OK" -- cgit v1.2.3-74-g34f1 From 5c473c8612a55cc71689bf4ba468a464bf9da197 Mon Sep 17 00:00:00 2001 From: Jan Wagner Date: Fri, 6 Jan 2017 18:02:36 +0100 Subject: Fixing shellcheck SC2143 --- plugins-scripts/check_oracle.sh | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'plugins-scripts') diff --git a/plugins-scripts/check_oracle.sh b/plugins-scripts/check_oracle.sh index 70a3fefa..9b9540a6 100755 --- a/plugins-scripts/check_oracle.sh +++ b/plugins-scripts/check_oracle.sh @@ -219,7 +219,7 @@ and dbg.name='db block gets' and cg.name='consistent gets'; EOF` - if [ -n "$(echo "$result" | grep ORA-)" ] ; then + if echo "$result" | grep -q 'ORA-' ; then error=$(echo "$result" | grep "ORA-" | head -1) echo "CRITICAL - $error" exit "$STATE_CRITICAL" @@ -234,7 +234,7 @@ select sum(lc.pins)/(sum(lc.pins)+sum(lc.reloads))*100 from v\\$librarycache lc; EOF` - if [ -n "$(echo "$result" | grep ORA-)" ] ; then + if echo "$result" | grep -q 'ORA-' ; then error=$(echo "$result" | grep "ORA-" | head -1) echo "CRITICAL - $error" exit "$STATE_CRITICAL" @@ -273,7 +273,7 @@ from dba_free_space group by tablespace_name) B ON a.tablespace_name=b.tablespace_name WHERE a.tablespace_name='${5}'; EOF` - if [ -n "$(echo "$result" | grep ORA-)" ] ; then + if echo "$result" | grep -q 'ORA-' ; then error=$(echo "$result" | grep "ORA-" | head -1) echo "CRITICAL - $error" exit "$STATE_CRITICAL" -- cgit v1.2.3-74-g34f1 From 9d8e973b93f261cbb52f5cb944f2e074c348290d Mon Sep 17 00:00:00 2001 From: Jan Wagner Date: Fri, 6 Jan 2017 18:14:55 +0100 Subject: Fixing shellcheck SC2162 --- plugins-scripts/check_oracle.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'plugins-scripts') diff --git a/plugins-scripts/check_oracle.sh b/plugins-scripts/check_oracle.sh index 9b9540a6..bfd9e8f0 100755 --- a/plugins-scripts/check_oracle.sh +++ b/plugins-scripts/check_oracle.sh @@ -110,7 +110,7 @@ if [ -z "$ORACLE_HOME" ] ; then do [ ! -f $oratab ] && continue ORACLE_HOME=`IFS=: - while read SID ORACLE_HOME junk; + while read -r SID ORACLE_HOME junk; do if [ "$SID" = "$2" -o "$SID" = "*" ] ; then echo "$ORACLE_HOME"; -- cgit v1.2.3-74-g34f1 From 8294af907bd8482a86df749f562b7ec09e3faeed Mon Sep 17 00:00:00 2001 From: Jan Wagner Date: Fri, 6 Jan 2017 18:39:51 +0100 Subject: Fixing shellcheck SC2166 --- plugins-scripts/check_oracle.sh | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) (limited to 'plugins-scripts') diff --git a/plugins-scripts/check_oracle.sh b/plugins-scripts/check_oracle.sh index bfd9e8f0..b14ec50e 100755 --- a/plugins-scripts/check_oracle.sh +++ b/plugins-scripts/check_oracle.sh @@ -112,7 +112,7 @@ if [ -z "$ORACLE_HOME" ] ; then ORACLE_HOME=`IFS=: while read -r SID ORACLE_HOME junk; do - if [ "$SID" = "$2" -o "$SID" = "*" ] ; then + if [ "$SID" = "$2" ] || [ "$SID" = "*" ] ; then echo "$ORACLE_HOME"; exit; fi; @@ -121,10 +121,10 @@ if [ -z "$ORACLE_HOME" ] ; then done fi # Last resort -[ -z "$ORACLE_HOME" -a -d "$PROGPATH"/oracle ] && ORACLE_HOME=$PROGPATH/oracle +[ -z "$ORACLE_HOME" ] && [ -d "$PROGPATH"/oracle ] && ORACLE_HOME=$PROGPATH/oracle if [ "$cmd" != "--db" ]; then - if [ -z "$ORACLE_HOME" -o ! -d "$ORACLE_HOME" ] ; then + if [ -z "$ORACLE_HOME" ] || [ ! -d "$ORACLE_HOME" ] ; then echo "Cannot determine ORACLE_HOME for sid $2" exit "$STATE_UNKNOWN" fi @@ -243,11 +243,11 @@ EOF` lib_hr=$(echo "$result" | awk '/^[0-9\. \t]+$/ {print int($1)}') lib_hrx=$(echo "$result" | awk '/^[0-9\. \t]+$/ {print $1}') - if [ "$buf_hr" -le "${5}" -o "$lib_hr" -le "${5}" ] ; then + if [ "$buf_hr" -le "${5}" ] || [ "$lib_hr" -le "${5}" ] ; then echo "${2} CRITICAL - Cache Hit Rates: $lib_hrx% Lib -- $buf_hrx% Buff|lib=$lib_hrx%;${6};${5};0;100 buffer=$buf_hrx%;${6};${5};0;100" exit "$STATE_CRITICAL" fi - if [ "$buf_hr" -le "${6}" -o "$lib_hr" -le "${6}" ] ; then + if [ "$buf_hr" -le "${6}" ] || [ "$lib_hr" -le "${6}" ] ; then echo "${2} WARNING - Cache Hit Rates: $lib_hrx% Lib -- $buf_hrx% Buff|lib=$lib_hrx%;${6};${5};0;100 buffer=$buf_hrx%;${6};${5};0;100" exit "$STATE_WARNING" fi @@ -283,7 +283,7 @@ EOF` ts_total=$(echo "$result" | awk '/^[ 0-9\.\t ]+$/ {print int($2)}') ts_pct=$(echo "$result" | awk '/^[ 0-9\.\t ]+$/ {print int($3)}') ts_pctx=$(echo "$result" | awk '/^[ 0-9\.\t ]+$/ {print $3}') - if [ "$ts_free" -eq 0 -a "$ts_total" -eq 0 -a "$ts_pct" -eq 0 ] ; then + if [ "$ts_free" -eq 0 ] && [ "$ts_total" -eq 0 ] && [ "$ts_pct" -eq 0 ] ; then echo "No data returned by Oracle - tablespace $5 not found?" exit "$STATE_UNKNOWN" fi -- cgit v1.2.3-74-g34f1 From 6246b8f1830e8a375bc656deafd28aab715b4fd9 Mon Sep 17 00:00:00 2001 From: Lee Clemens Date: Tue, 16 May 2017 11:23:43 -0400 Subject: Add mailq -C option for config dir or config file New variable, mailq_args, is appended for postfix mta mailq commands Fixes #1489 --- plugins-scripts/check_mailq.pl | 26 +++++++++++++++++--------- 1 file changed, 17 insertions(+), 9 deletions(-) (limited to 'plugins-scripts') diff --git a/plugins-scripts/check_mailq.pl b/plugins-scripts/check_mailq.pl index 32f498d3..9ef292e7 100755 --- a/plugins-scripts/check_mailq.pl +++ b/plugins-scripts/check_mailq.pl @@ -28,9 +28,9 @@ use POSIX; use strict; use Getopt::Long; -use vars qw($opt_V $opt_h $opt_v $verbose $PROGNAME $opt_w $opt_c $opt_t $opt_s - $opt_M $mailq $status $state $msg $msg_q $msg_p $opt_W $opt_C $mailq @lines - %srcdomains %dstdomains); +use vars qw($opt_V $opt_h $opt_v $verbose $PROGNAME $opt_w $opt_c $opt_t $opt_s $opt_d + $opt_M $mailq $status $state $msg $msg_q $msg_p $opt_W $opt_C $mailq $mailq_args + @lines %srcdomains %dstdomains); use FindBin; use lib "$FindBin::Bin"; use utils qw(%ERRORS &print_revision &support &usage ); @@ -48,6 +48,8 @@ $PROGNAME = "check_mailq"; $mailq = 'sendmail'; # default $msg_q = 0 ; $msg_p = 0 ; +# If appended, must start with a space +$mailq_args = '' ; $state = $ERRORS{'UNKNOWN'}; Getopt::Long::Configure('bundling'); @@ -68,6 +70,10 @@ if ($opt_s) { $sudo = ""; } +if ($opt_d) { + $mailq_args = $mailq_args . ' -C ' . $opt_d; +} + $SIG{'ALRM'} = sub { print ("ERROR: timed out waiting for $utils::PATH_TO_MAILQ \n"); exit $ERRORS{"WARNING"}; @@ -309,8 +315,8 @@ elsif ( $mailq eq "postfix" ) { ## open mailq if ( defined $utils::PATH_TO_MAILQ && -x $utils::PATH_TO_MAILQ ) { - if (! open (MAILQ, "$sudo $utils::PATH_TO_MAILQ | " ) ) { - print "ERROR: could not open $utils::PATH_TO_MAILQ \n"; + if (! open (MAILQ, "$sudo $utils::PATH_TO_MAILQ$mailq_args | " ) ) { + print "ERROR: could not open $utils::PATH_TO_MAILQ$mailq_args \n"; exit $ERRORS{'UNKNOWN'}; } }elsif( defined $utils::PATH_TO_MAILQ){ @@ -330,7 +336,7 @@ elsif ( $mailq eq "postfix" ) { close MAILQ; if ( $? ) { - print "CRITICAL: Error code ".($?>>8)." returned from $utils::PATH_TO_MAILQ",$/; + print "CRITICAL: Error code ".($?>>8)." returned from $utils::PATH_TO_MAILQ$mailq_args",$/; exit $ERRORS{CRITICAL}; } @@ -343,7 +349,7 @@ elsif ( $mailq eq "postfix" ) { }elsif ($lines[0]=~/Mail queue is empty/) { $msg_q = 0; }else{ - print "Couldn't match $utils::PATH_TO_MAILQ output\n"; + print "Couldn't match $utils::PATH_TO_MAILQ$mailq_args output\n"; exit $ERRORS{'UNKNOWN'}; } @@ -568,7 +574,8 @@ sub process_arguments(){ "w=i" => \$opt_w, "warning=i" => \$opt_w, # warning if above this number "c=i" => \$opt_c, "critical=i" => \$opt_c, # critical if above this number "t=i" => \$opt_t, "timeout=i" => \$opt_t, - "s" => \$opt_s, "sudo" => \$opt_s + "s" => \$opt_s, "sudo" => \$opt_s, + "d:s" => \$opt_d, "configdir:s" => \$opt_d ); if ($opt_V) { @@ -649,7 +656,7 @@ sub process_arguments(){ } sub print_usage () { - print "Usage: $PROGNAME -w -c [-W ] [-C ] [-M ] [-t ] [-s] [-v]\n"; + print "Usage: $PROGNAME -w -c [-W ] [-C ] [-M ] [-t ] [-s] [-d ] [-v]\n"; } sub print_help () { @@ -667,6 +674,7 @@ sub print_help () { print "-t (--timeout) = Plugin timeout in seconds (default = $utils::TIMEOUT)\n"; print "-M (--mailserver) = [ sendmail | qmail | postfix | exim | nullmailer ] (default = autodetect)\n"; print "-s (--sudo) = Use sudo to call the mailq command\n"; + print "-d (--configdir) = Config file or directory\n"; print "-h (--help)\n"; print "-V (--version)\n"; print "-v (--verbose) = debugging output\n"; -- cgit v1.2.3-74-g34f1 From 541322969e27b07566c55448d749bc64ab7ae5c0 Mon Sep 17 00:00:00 2001 From: Stephane Lapie Date: Wed, 7 Jun 2017 15:12:53 +0900 Subject: Fix regexp for nullmailer "mailq" output As it currently is, the regular expression does not match mailq command output on a Debian Jessie setup. Three erroneous behaviors fixed : - Meaningful lines do not end with the "bytes" word - There might be one or more space before the byte count, not 2 - Time match was completely broken, it only accounted for 0-29 minutes and 0-29 seconds. --- plugins-scripts/check_mailq.pl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'plugins-scripts') diff --git a/plugins-scripts/check_mailq.pl b/plugins-scripts/check_mailq.pl index 32f498d3..1fc15ffc 100755 --- a/plugins-scripts/check_mailq.pl +++ b/plugins-scripts/check_mailq.pl @@ -533,7 +533,7 @@ elsif ( $mailq eq "nullmailer" ) { while () { #2006-06-22 16:00:00 282 bytes - if (/^[1-9][0-9]*-[01][0-9]-[0-3][0-9]\s[0-2][0-9]\:[0-2][0-9]\:[0-2][0-9]\s{2}[0-9]+\sbytes$/) { + if (/^[1-9][0-9]*-[01][0-9]-[0-3][0-9]\s[0-2][0-9]\:[0-5][0-9]\:[0-5][0-9]\s+[0-9]+\sbytes/) { $msg_q++ ; } } -- cgit v1.2.3-74-g34f1 From aa79ab278ffc9bf3d41207d97bdfb04be35b5c74 Mon Sep 17 00:00:00 2001 From: Sven Nierlein Date: Tue, 8 Dec 2020 16:24:10 +0100 Subject: check_mailq: restore accidentially removed options with https://github.com/monitoring-plugins/monitoring-plugins/issues/381 -W and -C have been removed. It would have been sufficient to only remove the long options. Restoring short options.. - fixes https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=954961 --- plugins-scripts/check_mailq.pl | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) (limited to 'plugins-scripts') diff --git a/plugins-scripts/check_mailq.pl b/plugins-scripts/check_mailq.pl index 32f498d3..aac1310e 100755 --- a/plugins-scripts/check_mailq.pl +++ b/plugins-scripts/check_mailq.pl @@ -568,7 +568,9 @@ sub process_arguments(){ "w=i" => \$opt_w, "warning=i" => \$opt_w, # warning if above this number "c=i" => \$opt_c, "critical=i" => \$opt_c, # critical if above this number "t=i" => \$opt_t, "timeout=i" => \$opt_t, - "s" => \$opt_s, "sudo" => \$opt_s + "s" => \$opt_s, "sudo" => \$opt_s, + "W=i" => \$opt_W, # warning if above this number + "C=i" => \$opt_C, # critical if above this number ); if ($opt_V) { @@ -662,8 +664,8 @@ sub print_help () { print " Feedback/patches to support non-sendmail mailqueue welcome\n\n"; print "-w (--warning) = Min. number of messages in queue to generate warning\n"; print "-c (--critical) = Min. number of messages in queue to generate critical alert ( w < c )\n"; - print "-W (--Warning) = Min. number of messages for same domain in queue to generate warning\n"; - print "-C (--Critical) = Min. number of messages for same domain in queue to generate critical alert ( W < C )\n"; + print "-W = Min. number of messages for same domain in queue to generate warning\n"; + print "-C = Min. number of messages for same domain in queue to generate critical alert ( W < C )\n"; print "-t (--timeout) = Plugin timeout in seconds (default = $utils::TIMEOUT)\n"; print "-M (--mailserver) = [ sendmail | qmail | postfix | exim | nullmailer ] (default = autodetect)\n"; print "-s (--sudo) = Use sudo to call the mailq command\n"; -- cgit v1.2.3-74-g34f1 From 3abcf83af41af9e56382b8e93a48d8d3ce1f18e8 Mon Sep 17 00:00:00 2001 From: rincewind Date: Fri, 2 Jul 2021 10:37:35 +0200 Subject: Remove modified note, since this is a git repository --- plugins-scripts/check_log.sh | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) (limited to 'plugins-scripts') diff --git a/plugins-scripts/check_log.sh b/plugins-scripts/check_log.sh index d28c8d0a..4330235e 100755 --- a/plugins-scripts/check_log.sh +++ b/plugins-scripts/check_log.sh @@ -1,8 +1,7 @@ #!/bin/sh # # Log file pattern detector plugin for monitoring -# Written by Ethan Galstad (nagios@nagios.org) -# Last Modified: 07-31-1999 +# Written originally by Ethan Galstad (nagios@nagios.org) # # Usage: ./check_log # -- cgit v1.2.3-74-g34f1 From 14e1d7f6af409c28dab4732357a2b355a1ada85a Mon Sep 17 00:00:00 2001 From: rincewind Date: Fri, 2 Jul 2021 17:39:47 +0200 Subject: Apply shellcheck --- plugins-scripts/check_log.sh | 58 ++++++++++++++++++++++---------------------- 1 file changed, 29 insertions(+), 29 deletions(-) (limited to 'plugins-scripts') diff --git a/plugins-scripts/check_log.sh b/plugins-scripts/check_log.sh index 4330235e..8a79704a 100755 --- a/plugins-scripts/check_log.sh +++ b/plugins-scripts/check_log.sh @@ -59,11 +59,11 @@ PATH="@TRUSTED_PATH@" export PATH -PROGNAME=`basename $0` -PROGPATH=`echo $0 | sed -e 's,[\\/][^\\/][^\\/]*$,,'` +PROGNAME=$(basename "$0") +PROGPATH=$(echo "$0" | sed -e 's,[\\/][^\\/][^\\/]*$,,') REVISION="@NP_VERSION@" -. $PROGPATH/utils.sh +. "$PROGPATH"/utils.sh print_usage() { echo "Usage: $PROGNAME -F logfile -O oldlog -q query" @@ -72,7 +72,7 @@ print_usage() { } print_help() { - print_revision $PROGNAME $REVISION + print_revision "$PROGNAME" $REVISION echo "" print_usage echo "" @@ -86,7 +86,7 @@ print_help() { if [ $# -lt 1 ]; then print_usage - exit $STATE_UNKNOWN + exit "$STATE_UNKNOWN" fi # Grab the command line arguments @@ -99,19 +99,19 @@ while test -n "$1"; do case "$1" in --help) print_help - exit $STATE_OK + exit "$STATE_OK" ;; -h) print_help - exit $STATE_OK + exit "$STATE_OK" ;; --version) - print_revision $PROGNAME $REVISION - exit $STATE_OK + print_revision "$PROGNAME" $REVISION + exit "$STATE_OK" ;; -V) - print_revision $PROGNAME $REVISION - exit $STATE_OK + print_revision "$PROGNAME" $REVISION + exit "$STATE_OK" ;; --filename) logfile=$2 @@ -148,7 +148,7 @@ while test -n "$1"; do *) echo "Unknown argument: $1" print_usage - exit $STATE_UNKNOWN + exit "$STATE_UNKNOWN" ;; esac shift @@ -156,22 +156,22 @@ done # If the source log file doesn't exist, exit -if [ ! -e $logfile ]; then +if [ ! -e "$logfile" ]; then echo "Log check error: Log file $logfile does not exist!" - exit $STATE_UNKNOWN -elif [ ! -r $logfile ] ; then + exit "$STATE_UNKNOWN" +elif [ ! -r "$logfile" ] ; then echo "Log check error: Log file $logfile is not readable!" - exit $STATE_UNKNOWN + exit "$STATE_UNKNOWN" fi # If the old log file doesn't exist, this must be the first time # we're running this test, so copy the original log file over to # the old diff file and exit -if [ ! -e $oldlog ]; then - cat $logfile > $oldlog +if [ ! -e "$oldlog" ]; then + cat "$logfile" > "$oldlog" echo "Log check data initialized..." - exit $STATE_OK + exit "$STATE_OK" fi # The old log file exists, so compare it to the original log now @@ -179,24 +179,24 @@ fi # The temporary file that the script should use while # processing the log file. if [ -x /bin/mktemp ]; then - tempdiff=`/bin/mktemp /tmp/check_log.XXXXXXXXXX` + tempdiff=$(/bin/mktemp /tmp/check_log.XXXXXXXXXX) else - tempdiff=`/bin/date '+%H%M%S'` + tempdiff=$(/bin/date '+%H%M%S') tempdiff="/tmp/check_log.${tempdiff}" - touch $tempdiff - chmod 600 $tempdiff + touch "$tempdiff" + chmod 600 "$tempdiff" fi -diff $logfile $oldlog | grep -v "^>" > $tempdiff +diff "$logfile" "$oldlog" | grep -v "^>" > "$tempdiff" # Count the number of matching log entries we have -count=`grep -c "$query" $tempdiff` +count=$(grep -c "$query" "$tempdiff") # Get the last matching entry in the diff file -lastentry=`grep "$query" $tempdiff | tail -1` +lastentry=$(grep "$query" "$tempdiff" | tail -1) -rm -f $tempdiff -cat $logfile > $oldlog +rm -f "$tempdiff" +cat "$logfile" > "$oldlog" if [ "$count" = "0" ]; then # no matches, exit with no error echo "Log check ok - 0 pattern matches found" @@ -206,4 +206,4 @@ else # Print total matche count and the last entry we found exitstatus=$STATE_CRITICAL fi -exit $exitstatus +exit "$exitstatus" -- cgit v1.2.3-74-g34f1 From c2aa1a5fa2dd96c7186704901d33721a63b9cd03 Mon Sep 17 00:00:00 2001 From: rincewind Date: Fri, 2 Jul 2021 18:01:47 +0200 Subject: Add extended and perl regex --- plugins-scripts/check_log.sh | 34 ++++++++++++++++++++++++++++++++-- 1 file changed, 32 insertions(+), 2 deletions(-) (limited to 'plugins-scripts') diff --git a/plugins-scripts/check_log.sh b/plugins-scripts/check_log.sh index 8a79704a..6e9fbca5 100755 --- a/plugins-scripts/check_log.sh +++ b/plugins-scripts/check_log.sh @@ -145,6 +145,22 @@ while test -n "$1"; do exitstatus=$2 shift ;; + --extended-regex) + ERE=1 + shift + ;; + -e) + ERE=1 + shift + ;; + --perl-regex) + PRE=1 + shift + ;; + -p) + PRE=1 + shift + ;; *) echo "Unknown argument: $1" print_usage @@ -154,6 +170,20 @@ while test -n "$1"; do shift done +# Parameter sanity check +if [ $ERE ] && [ $PRE ] ; then + echo "Can not use extended and perl regex at the same time" + exit "$STATE_UNKNOWN" +fi + +if [ $ERE ]; then + GREP="grep -E" +fi + +if [ $PRE ]; then + GREP="grep -P" +fi + # If the source log file doesn't exist, exit if [ ! -e "$logfile" ]; then @@ -190,10 +220,10 @@ fi diff "$logfile" "$oldlog" | grep -v "^>" > "$tempdiff" # Count the number of matching log entries we have -count=$(grep -c "$query" "$tempdiff") +count=$($GREP -c "$query" "$tempdiff") # Get the last matching entry in the diff file -lastentry=$(grep "$query" "$tempdiff" | tail -1) +lastentry=$($GREP "$query" "$tempdiff" | tail -1) rm -f "$tempdiff" cat "$logfile" > "$oldlog" -- cgit v1.2.3-74-g34f1 From 53b77dee91f780b4d78839f881c642189b829e3c Mon Sep 17 00:00:00 2001 From: rincewind Date: Fri, 2 Jul 2021 18:38:12 +0200 Subject: Add -a option to print all matching lines and -p and -e options for perl and extended RE --- plugins-scripts/check_log.sh | 51 ++++++++++++++++++++++++++++++++------------ 1 file changed, 37 insertions(+), 14 deletions(-) (limited to 'plugins-scripts') diff --git a/plugins-scripts/check_log.sh b/plugins-scripts/check_log.sh index 6e9fbca5..8af07b5e 100755 --- a/plugins-scripts/check_log.sh +++ b/plugins-scripts/check_log.sh @@ -69,6 +69,11 @@ print_usage() { echo "Usage: $PROGNAME -F logfile -O oldlog -q query" echo "Usage: $PROGNAME --help" echo "Usage: $PROGNAME --version" + echo "" + echo "Other parameters:" + echo " -a|--all : Print all matching lines" + echo " -p|--perl-regex : Use perl style regular expressions in the query" + echo " -e|--extended-regex : Use extended style regular expressions in the query (not necessary for GNU grep)" } print_help() { @@ -115,35 +120,35 @@ while test -n "$1"; do ;; --filename) logfile=$2 - shift + shift 2 ;; -F) logfile=$2 - shift + shift 2 ;; --oldlog) oldlog=$2 - shift + shift 2 ;; -O) oldlog=$2 - shift + shift 2 ;; --query) query=$2 - shift + shift 2 ;; -q) query=$2 - shift + shift 2 ;; -x) exitstatus=$2 - shift + shift 2 ;; --exitstatus) exitstatus=$2 - shift + shift 2 ;; --extended-regex) ERE=1 @@ -161,13 +166,20 @@ while test -n "$1"; do PRE=1 shift ;; + --all) + ALL=1 + shift + ;; + -a) + ALL=1 + shift + ;; *) echo "Unknown argument: $1" print_usage exit "$STATE_UNKNOWN" ;; esac - shift done # Parameter sanity check @@ -176,6 +188,8 @@ if [ $ERE ] && [ $PRE ] ; then exit "$STATE_UNKNOWN" fi +GREP="grep" + if [ $ERE ]; then GREP="grep -E" fi @@ -219,11 +233,20 @@ fi diff "$logfile" "$oldlog" | grep -v "^>" > "$tempdiff" -# Count the number of matching log entries we have -count=$($GREP -c "$query" "$tempdiff") +if [ $ALL ]; then + # Get the last matching entry in the diff file + entry=$($GREP "$query" "$tempdiff") -# Get the last matching entry in the diff file -lastentry=$($GREP "$query" "$tempdiff" | tail -1) + # Count the number of matching log entries we have + count=$(echo "$entry" | wc -l) + +else + # Count the number of matching log entries we have + count=$($GREP -c "$query" "$tempdiff") + + # Get the last matching entry in the diff file + entry=$($GREP "$query" "$tempdiff" | tail -1) +fi rm -f "$tempdiff" cat "$logfile" > "$oldlog" @@ -232,7 +255,7 @@ if [ "$count" = "0" ]; then # no matches, exit with no error echo "Log check ok - 0 pattern matches found" exitstatus=$STATE_OK else # Print total matche count and the last entry we found - echo "($count) $lastentry" + echo "($count) $entry" exitstatus=$STATE_CRITICAL fi -- cgit v1.2.3-74-g34f1 From 10db89344adc7dad1d1ec4ac00e4fadc6b79fa72 Mon Sep 17 00:00:00 2001 From: rincewind Date: Mon, 5 Jul 2021 09:56:19 +0200 Subject: Add quoting for the remaining variables --- plugins-scripts/check_log.sh | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'plugins-scripts') diff --git a/plugins-scripts/check_log.sh b/plugins-scripts/check_log.sh index 8af07b5e..382bd72c 100755 --- a/plugins-scripts/check_log.sh +++ b/plugins-scripts/check_log.sh @@ -77,7 +77,7 @@ print_usage() { } print_help() { - print_revision "$PROGNAME" $REVISION + print_revision "$PROGNAME" "$REVISION" echo "" print_usage echo "" @@ -111,11 +111,11 @@ while test -n "$1"; do exit "$STATE_OK" ;; --version) - print_revision "$PROGNAME" $REVISION + print_revision "$PROGNAME" "$REVISION" exit "$STATE_OK" ;; -V) - print_revision "$PROGNAME" $REVISION + print_revision "$PROGNAME" "$REVISION" exit "$STATE_OK" ;; --filename) -- cgit v1.2.3-74-g34f1 From 1fb635d8691180b312537a4540feb6f947986e86 Mon Sep 17 00:00:00 2001 From: Peter Newman Date: Thu, 22 Jul 2021 13:33:14 +0100 Subject: Re-attach a comment to where it actually belongs --- plugins-scripts/check_ifoperstatus.pl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'plugins-scripts') diff --git a/plugins-scripts/check_ifoperstatus.pl b/plugins-scripts/check_ifoperstatus.pl index 9ede1633..c190ce95 100755 --- a/plugins-scripts/check_ifoperstatus.pl +++ b/plugins-scripts/check_ifoperstatus.pl @@ -124,10 +124,10 @@ if (!defined($session)) { ## map ifdescr to ifindex - should look at being able to cache this value if (defined $ifdescr || defined $iftype) { - # escape "/" in ifdescr - very common in the Cisco world if (defined $iftype) { $status=fetch_ifindex($snmpIfType, $iftype); } else { + # escape "/" in ifdescr - very common in the Cisco world $ifdescr =~ s/\//\\\//g; $status=fetch_ifindex($snmpIfDescr, $ifdescr); # if using on device with large number of interfaces # recommend use of SNMP v2 (get-bulk) -- cgit v1.2.3-74-g34f1 From ead405515fb4bf84ce18d2fe3f621058f09a8aa2 Mon Sep 17 00:00:00 2001 From: Lorenz Kästle Date: Mon, 18 Oct 2021 10:41:44 +0200 Subject: Restrict the nickname length of the test user for check_ircd check_ircd was using the string `ircd` plus the PID as a nickname for connecting to a IRC network by default. This caused errors, when the PID was too high and the network restricted the length of the nickname to 9 characters. This patch "fixes" this by just cutting it of, if it gets too big. --- plugins-scripts/check_ircd.pl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'plugins-scripts') diff --git a/plugins-scripts/check_ircd.pl b/plugins-scripts/check_ircd.pl index 22d21c2e..e7ab80c2 100755 --- a/plugins-scripts/check_ircd.pl +++ b/plugins-scripts/check_ircd.pl @@ -69,7 +69,7 @@ $ENV{'ENV'}=''; # -----------------------------------------------------------------[ Global ]-- $PROGNAME = "check_ircd"; -my $NICK="ircd$$"; +my $NICK="ircd" . $$ % 10000; my $USER_INFO="monitor localhost localhost : "; # -------------------------------------------------------------[ connection ]-- -- cgit v1.2.3-74-g34f1 From 03028d23b6c59bcb4000bc70209593afd798dfe3 Mon Sep 17 00:00:00 2001 From: Lorenz Kästle Date: Mon, 18 Oct 2021 13:16:10 +0200 Subject: Add comment to make the purpose of the nickname fix more obvious --- plugins-scripts/check_ircd.pl | 2 ++ 1 file changed, 2 insertions(+) (limited to 'plugins-scripts') diff --git a/plugins-scripts/check_ircd.pl b/plugins-scripts/check_ircd.pl index e7ab80c2..d869ae7b 100755 --- a/plugins-scripts/check_ircd.pl +++ b/plugins-scripts/check_ircd.pl @@ -69,6 +69,8 @@ $ENV{'ENV'}=''; # -----------------------------------------------------------------[ Global ]-- $PROGNAME = "check_ircd"; +# nickname shouldn't be longer than 9 chars, this might happen with large PIDs +# To prevent this, we cut of the part over 10000 my $NICK="ircd" . $$ % 10000; my $USER_INFO="monitor localhost localhost : "; -- cgit v1.2.3-74-g34f1 From 5e2c3992204466d621e521695c4250f1d5480e77 Mon Sep 17 00:00:00 2001 From: RincewindsHat <12514511+RincewindsHat@users.noreply.github.com> Date: Mon, 29 Nov 2021 17:27:57 +0100 Subject: Make size parameter a little bit more intelligible --- plugins-scripts/check_file_age.pl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'plugins-scripts') diff --git a/plugins-scripts/check_file_age.pl b/plugins-scripts/check_file_age.pl index 01b854a6..26281ddd 100755 --- a/plugins-scripts/check_file_age.pl +++ b/plugins-scripts/check_file_age.pl @@ -147,7 +147,7 @@ sub print_help () { print "\n"; print " -i | --ignore-missing : return OK if the file does not exist\n"; print " File must be no more than this many seconds old (default: warn 240 secs, crit 600)\n"; - print " File must be at least this many bytes long (default: crit 0 bytes)\n\n"; + print " File must be at least this many bytes long (default: file size is ignored (0 bytes))\n\n"; print " Both and can specify a range using the standard plugin syntax\n"; print " If any of the warning and critical arguments are in range syntax (not just bare numbers)\n"; print " then all warning and critical arguments will be interpreted as ranges.\n"; -- cgit v1.2.3-74-g34f1 From 8df8460c6cd5c926990fddc1659e0f4194848473 Mon Sep 17 00:00:00 2001 From: RincewindsHat <12514511+RincewindsHat@users.noreply.github.com> Date: Thu, 2 Dec 2021 15:26:31 +0100 Subject: Fix syntax error resulting from merging --- plugins-scripts/check_mailq.pl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'plugins-scripts') diff --git a/plugins-scripts/check_mailq.pl b/plugins-scripts/check_mailq.pl index 4bc9487f..3914f4a7 100755 --- a/plugins-scripts/check_mailq.pl +++ b/plugins-scripts/check_mailq.pl @@ -575,7 +575,7 @@ sub process_arguments(){ "c=i" => \$opt_c, "critical=i" => \$opt_c, # critical if above this number "t=i" => \$opt_t, "timeout=i" => \$opt_t, "s" => \$opt_s, "sudo" => \$opt_s, - "d:s" => \$opt_d, "configdir:s" => \$opt_d + "d:s" => \$opt_d, "configdir:s" => \$opt_d, "W=i" => \$opt_W, # warning if above this number "C=i" => \$opt_C, # critical if above this number ); -- cgit v1.2.3-74-g34f1 From 5a81bd813ecae7c6492e4eac001331973d9594b3 Mon Sep 17 00:00:00 2001 From: RincewindsHat <12514511+RincewindsHat@users.noreply.github.com> Date: Thu, 2 Dec 2021 17:10:57 +0100 Subject: Missing oldlog now aborts check_log --- plugins-scripts/check_log.sh | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) (limited to 'plugins-scripts') diff --git a/plugins-scripts/check_log.sh b/plugins-scripts/check_log.sh index 61131236..d71f420e 100755 --- a/plugins-scripts/check_log.sh +++ b/plugins-scripts/check_log.sh @@ -43,6 +43,10 @@ # check the same for pattern matches. This is necessary # because of the way the script operates. # +# 4. This plugin does NOT have an understanding of logrotation or similar +# mechanisms. Therefore bad timing could lead to missing events +# +# # Examples: # # Check for login failures in the syslog... @@ -207,6 +211,11 @@ elif [ ! -r "$logfile" ] ; then echo "Log check error: Log file $logfile is not readable!" exit "$STATE_UNKNOWN" fi +# If no oldlog was given this can not work properly, abort then +if [ ! -v oldlog ]; then + echo "Oldlog parameter is needed" + exit $STATE_UNKNOWN +fi # If the old log file doesn't exist, this must be the first time # we're running this test, so copy the original log file over to @@ -256,7 +265,7 @@ cat "$logfile" > "$oldlog" if [ "$count" = "0" ]; then # no matches, exit with no error echo "Log check ok - 0 pattern matches found" exitstatus=$STATE_OK -else # Print total matche count and the last entry we found +else # Print total match count and the last entry we found echo "($count) $entry" exitstatus=$STATE_CRITICAL fi -- cgit v1.2.3-74-g34f1 From c1bf69c3a6a52c714e27107219e402bbecd7c000 Mon Sep 17 00:00:00 2001 From: RincewindsHat <12514511+RincewindsHat@users.noreply.github.com> Date: Mon, 20 Dec 2021 00:08:24 +0100 Subject: Apparently Dash is not Bash, so -v does not work --- plugins-scripts/check_log.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'plugins-scripts') diff --git a/plugins-scripts/check_log.sh b/plugins-scripts/check_log.sh index d71f420e..fdb57416 100755 --- a/plugins-scripts/check_log.sh +++ b/plugins-scripts/check_log.sh @@ -212,7 +212,7 @@ elif [ ! -r "$logfile" ] ; then exit "$STATE_UNKNOWN" fi # If no oldlog was given this can not work properly, abort then -if [ ! -v oldlog ]; then +if [ -z "$oldlog" ]; then echo "Oldlog parameter is needed" exit $STATE_UNKNOWN fi -- cgit v1.2.3-74-g34f1 From 763b7ab0c491cdc47442010374454532bfbe41dc Mon Sep 17 00:00:00 2001 From: rincewind Date: Fri, 23 Apr 2021 16:07:37 +0200 Subject: check_sensors.sh: Make shellcheck happier --- plugins-scripts/check_sensors.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'plugins-scripts') diff --git a/plugins-scripts/check_sensors.sh b/plugins-scripts/check_sensors.sh index 9a6cf5de..ab4e726e 100755 --- a/plugins-scripts/check_sensors.sh +++ b/plugins-scripts/check_sensors.sh @@ -46,7 +46,7 @@ case "$1" in if test ${status} -eq 127; then text="SENSORS UNKNOWN - command not found (did you install lmsensors?)" exit=$STATE_UNKNOWN - elif test ${status} -ne 0; then + elif test "${status}" -ne 0; then text="WARNING - sensors returned state $status" exit=$STATE_WARNING elif echo "${sensordata}" | egrep ALARM > /dev/null; then -- cgit v1.2.3-74-g34f1