===================================================================
RCS file: /cvs/nagios/check_hw_sensors/check_hw_sensors,v
retrieving revision 1.34
retrieving revision 1.40
diff -u -r1.34 -r1.40
--- nagios/check_hw_sensors/check_hw_sensors 2009/11/10 23:12:49 1.34
+++ nagios/check_hw_sensors/check_hw_sensors 2009/11/11 18:14:40 1.40
@@ -1,5 +1,5 @@
#!/usr/bin/perl -T
-# $RedRiver: check_hw_sensors,v 1.33 2009/11/10 23:11:18 andrew Exp $
+# $RedRiver: check_hw_sensors,v 1.39 2009/11/11 18:14:00 andrew Exp $
########################################################################
# check_hw_sensors *** A nagios check for OpenBSD sysctl hw.sensors
#
@@ -29,7 +29,14 @@
use POSIX;
use Config;
-use lib '/usr/local/libexec/nagios';
+my $PREFIX;
+
+BEGIN {
+ ## no critic 'warnings'
+ no warnings 'uninitialized';
+ $PREFIX = "${PREFIX}" || '/usr/local'; # Magic for OpenBSD ports tree
+}
+use lib $PREFIX . '/libexec/nagios';
use utils qw($TIMEOUT %ERRORS &support);
use Getopt::Long;
@@ -69,7 +76,7 @@
}
if ($opt_V) {
- print_revision( $PROGNAME, '$Revision: 1.34 $ ' );
+ print_revision( $PROGNAME, '$Revision: 1.40 $ ' );
exit $ERRORS{'OK'};
}
@@ -130,9 +137,8 @@
}
$CHECK_SENSOR = $SENSOR;
- $CHECKS{$SENSOR}{'warn'} = $WARNING;
- $CHECKS{$SENSOR}{'crit'} = $CRITICAL;
-
+ $CHECKS{$SENSOR}{'warn'} = $WARNING if $WARNING;
+ $CHECKS{$SENSOR}{'crit'} = $CRITICAL if $CRITICAL;
}
elsif ( defined $FILENAME ) {
%CHECKS = read_file($FILENAME);
@@ -144,21 +150,22 @@
my $have_results = 0;
$state = 'OK';
-foreach my $error ( sort { $ERRORS{$b} <=> $ERRORS{$a} } keys %ERRORS ) {
+foreach
+ my $error ( reverse sort { $ERRORS{$a} <=> $ERRORS{$b} } keys %ERRORS )
+{
if ( exists $STATES{$error} ) {
$have_results++;
$state = $error if $ERRORS{$state} < $ERRORS{$error};
if ($NAGIOS_OUTPUT) {
- print "$error (" . scalar( @{ $STATES{$error} } ) . ")";
+ print $error . ' (' . scalar( @{ $STATES{$error} } ) . ')';
if ( $error ne 'OK' ) {
- s/\s+/ /gxms;
print '
';
print map {" - $_
"} @{ $STATES{$error} };
}
}
else {
- print "$error (" . scalar( @{ $STATES{$error} } ) . "):\n";
+ print $error . ' (' . scalar( @{ $STATES{$error} } ) . "):\n";
foreach ( @{ $STATES{$error} } ) {
print " $_\n";
}
@@ -324,7 +331,7 @@
$r = check_sensor( $sensor, $C->{ $sensor->{id} } );
$data = $sensor->{id} . '=' . $sensor->{output};
}
- elsif ( !$O->{ignore_status} && $sensor->{status} ) {
+ elsif ( $sensor->{status} && !$O->{IGNORE_STATUS} ) {
$r = check_sensor( $sensor, { STATUS => 1 } );
$data = $sensor->{id} . '=' . $sensor->{output};
}
@@ -398,14 +405,14 @@
}
foreach my $code ( 'warn', 'crit' ) {
- if ( defined $check->{ $code . ".low" }
- || defined $check->{ $code . ".high" } )
+ if ( defined $check->{ $code . '.low' }
+ || defined $check->{ $code . '.high' } )
{
- if (( defined $check->{ $code . ".low" }
- && $check->{ $code . ".low" } >= $data
+ if (( defined $check->{ $code . '.low' }
+ && $check->{ $code . '.low' } >= $data
)
- || ( defined $check->{ $code . ".high" }
- && $check->{ $code . ".high" } <= $data )
+ || ( defined $check->{ $code . '.high' }
+ && $check->{ $code . '.high' } <= $data )
)
{
$result = $errors{$code};
@@ -418,7 +425,7 @@
my $c = $_;
$c =~ s/[^\d\.]//gxms;
if ( !length $c ) {
- warn "INVALID CHECK (" . $_ . ") for '$code'\n";
+ warn "INVALID CHECK ($_) for '$code'\n";
next;
}
@@ -489,7 +496,7 @@
FILE is in the same format as sensorsd.conf(5) plus some additional
entries. These additional entries in the file are ignored by
-sensorsd(8) this means you can use the same config file for $PROGNAME
+sensorsd(8). This means you can use the same config file for $PROGNAME
as well as sensorsd(8).
$PROGNAME understands the following entries:
@@ -529,7 +536,7 @@
EOL
- print_revision( $PROGNAME, '$Revision: 1.34 $' );
+ print_revision( $PROGNAME, '$Revision: 1.40 $' );
print $LICENSE;