aboutsummaryrefslogtreecommitdiff
path: root/plugins-scripts
diff options
context:
space:
mode:
Diffstat (limited to 'plugins-scripts')
-rwxr-xr-xplugins-scripts/check_file_age.pl2
-rwxr-xr-xplugins-scripts/check_ifoperstatus.pl2
-rwxr-xr-xplugins-scripts/check_ircd.pl4
-rwxr-xr-xplugins-scripts/check_log.sh149
-rwxr-xr-xplugins-scripts/check_mailq.pl34
-rwxr-xr-xplugins-scripts/check_oracle.sh240
-rwxr-xr-xplugins-scripts/check_sensors.sh34
7 files changed, 270 insertions, 195 deletions
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 " <secs> File must be no more than this many seconds old (default: warn 240 secs, crit 600)\n";
- print " <size> File must be at least this many bytes long (default: crit 0 bytes)\n\n";
+ print " <size> File must be at least this many bytes long (default: file size is ignored (0 bytes))\n\n";
print " Both <secs> and <size> 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";
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)
diff --git a/plugins-scripts/check_ircd.pl b/plugins-scripts/check_ircd.pl
index 22d21c2e..d869ae7b 100755
--- a/plugins-scripts/check_ircd.pl
+++ b/plugins-scripts/check_ircd.pl
@@ -69,7 +69,9 @@ $ENV{'ENV'}='';
# -----------------------------------------------------------------[ Global ]--
$PROGNAME = "check_ircd";
-my $NICK="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 : ";
# -------------------------------------------------------------[ connection ]--
diff --git a/plugins-scripts/check_log.sh b/plugins-scripts/check_log.sh
index d28c8d0a..fdb57416 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 <log_file> <old_log_file> <pattern>
#
@@ -44,6 +43,10 @@
# check the same <log_file> 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...
@@ -60,20 +63,25 @@
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"
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() {
- print_revision $PROGNAME $REVISION
+ print_revision "$PROGNAME" "$REVISION"
echo ""
print_usage
echo ""
@@ -87,7 +95,7 @@ print_help() {
if [ $# -lt 1 ]; then
print_usage
- exit $STATE_UNKNOWN
+ exit "$STATE_UNKNOWN"
fi
# Grab the command line arguments
@@ -100,79 +108,123 @@ 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
- 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 2
+ ;;
+ --extended-regex)
+ ERE=1
+ shift
+ ;;
+ -e)
+ ERE=1
+ shift
+ ;;
+ --perl-regex)
+ PRE=1
+ shift
+ ;;
+ -p)
+ PRE=1
+ shift
+ ;;
+ --all)
+ ALL=1
+ shift
+ ;;
+ -a)
+ ALL=1
shift
;;
*)
echo "Unknown argument: $1"
print_usage
- exit $STATE_UNKNOWN
+ exit "$STATE_UNKNOWN"
;;
esac
- 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
+
+GREP="grep"
+
+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
+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 no oldlog was given this can not work properly, abort then
+if [ -z "$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
# 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
@@ -180,31 +232,42 @@ 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`
+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
+rm -f "$tempdiff"
+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
- echo "($count) $lastentry"
+else # Print total match count and the last entry we found
+ echo "($count) $entry"
exitstatus=$STATE_CRITICAL
fi
-exit $exitstatus
+exit "$exitstatus"
diff --git a/plugins-scripts/check_mailq.pl b/plugins-scripts/check_mailq.pl
index 32f498d3..3914f4a7 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'};
}
@@ -533,7 +539,7 @@ elsif ( $mailq eq "nullmailer" ) {
while (<MAILQ>) {
#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++ ;
}
}
@@ -568,7 +574,10 @@ 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,
+ "W=i" => \$opt_W, # warning if above this number
+ "C=i" => \$opt_C, # critical if above this number
);
if ($opt_V) {
@@ -649,7 +658,7 @@ sub process_arguments(){
}
sub print_usage () {
- print "Usage: $PROGNAME -w <warn> -c <crit> [-W <warn>] [-C <crit>] [-M <MTA>] [-t <timeout>] [-s] [-v]\n";
+ print "Usage: $PROGNAME -w <warn> -c <crit> [-W <warn>] [-C <crit>] [-M <MTA>] [-t <timeout>] [-s] [-d <CONFIGDIR>] [-v]\n";
}
sub print_help () {
@@ -662,11 +671,12 @@ 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";
+ print "-d (--configdir) = Config file or directory\n";
print "-h (--help)\n";
print "-V (--version)\n";
print "-v (--verbose) = debugging output\n";
diff --git a/plugins-scripts/check_oracle.sh b/plugins-scripts/check_oracle.sh
index 96078aca..b14ec50e 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 -r SID ORACLE_HOME junk;
+ do
+ if [ "$SID" = "$2" ] || [ "$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" ] && [ -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" ] || [ ! -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
+ pmonchk=$(pgrep -f "(asm|ora)_pmon_${2}$")
+ 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
- error=` echo "$result" | grep "ORA-" | head -1`
- echo "CRITICAL - $error"
- exit $STATE_CRITICAL
+ if echo "$result" | grep -q '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}'`
- result=`sqlplus -s ${3}/${4}@${2} << EOF
+ 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 echo "$result" | grep -q '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"
- exit $STATE_CRITICAL
+ 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
- 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}" ] || [ "$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,32 +273,32 @@ 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 echo "$result" | grep -q '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}'`
- if [ "$ts_free" -eq 0 -a "$ts_total" -eq 0 -a "$ts_pct" -eq 0 ] ; then
+ 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 ] && [ "$ts_total" -eq 0 ] && [ "$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 f7428301..ab4e726e 100755
--- a/plugins-scripts/check_sensors.sh
+++ b/plugins-scripts/check_sensors.sh
@@ -2,57 +2,57 @@
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`
+ sensordata=$(sensors 2>&1)
status=$?
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
+ 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