=================================================================== RCS file: /cvs/nagios/check_hw_sensors/check_hw_sensors,v retrieving revision 1.20 retrieving revision 1.23 diff -u -r1.20 -r1.23 --- nagios/check_hw_sensors/check_hw_sensors 2006/12/05 00:17:47 1.20 +++ nagios/check_hw_sensors/check_hw_sensors 2007/01/22 02:38:35 1.23 @@ -1,5 +1,5 @@ #!/usr/bin/perl -T -# $RedRiver: check_hw_sensors,v 1.19 2006/12/04 23:33:53 andrew Exp $ +# $RedRiver: check_hw_sensors,v 1.22 2007/01/06 03:16:41 andrew Exp $ ######################################################################## # check_hw_sensors *** A nagios check for OpenBSD hw.sensors # @@ -13,7 +13,7 @@ %ENV = (); -use constant NAGIOS_OUTPUT => 1; +use constant NAGIOS_OUTPUT => 0; use POSIX; use Config; @@ -117,7 +117,7 @@ } if ($opt_V) { - print_revision($PROGNAME,'$Revision: 1.20 $ '); + print_revision($PROGNAME,'$Revision: 1.23 $ '); exit $ERRORS{'OK'}; } @@ -153,6 +153,7 @@ #while (<>) { chomp; my ($id, $output) = split /=/; + my @s = split /\./, $id; my @o = split /,\s*/, $output; my ($type, $source, $descr, $data, $status); @@ -160,7 +161,14 @@ $source = $o[0]; $descr = $o[1]; - if ($OSVer >= 4.0) { + if (@s == 4) { # XXX This mebbe needs to end up $OSVer >= 4.1 + $data = $o[0]; + if ($data =~ s/\s+\((.*)\).*$//) { + $descr = $1; + } + $status = $o[1]; + ($source, $type) = $id =~ /([^\.]+)\.([^\.]+)\d+$/; + } elsif ($OSVer >= 4.0) { $data = $o[2]; $status = $o[3]; foreach my $t (@Type_Map) { @@ -321,7 +329,9 @@ $result = 'OK'; foreach my $code ('warn', 'crit') { if ( + $sensor->{'type'} eq 'fan' || $sensor->{'type'} eq 'fanrpm' || + $sensor->{'type'} eq 'volt' || $sensor->{'type'} eq 'volts_dc' || $sensor->{'type'} eq 'amps' || $sensor->{'type'} eq 'watthour' || @@ -469,7 +479,7 @@ $sensor->{'type'} eq 'drive' || $sensor->{'type'} eq 'indicator' ) { - $sensor->{'type'} =~ s/^drive\s+//; + $sensor->{'data'} =~ s/^drive\s+//; if (@{ $check->{$code} }) { my $matched = 0; foreach (@{ $check->{$code} }) { @@ -556,6 +566,6 @@ EOL - print_revision($PROGNAME, '$Revision: 1.20 $'); + print_revision($PROGNAME, '$Revision: 1.23 $'); }