version 1.18, 2011/12/27 02:12:38 |
version 1.19, 2011/12/27 02:23:57 |
|
|
#!/usr/bin/perl -T |
#!/usr/bin/perl -T |
# $RedRiver: check_bioctl,v 1.15 2009/11/23 22:24:45 andrew Exp $ |
# $AFresh1$ |
######################################################################## |
######################################################################## |
# check_bioctl *** A nagios check for OpenBSD bioctl |
# check_bioctl *** A nagios check for OpenBSD bioctl |
# |
# |
|
|
######################################################################## |
######################################################################## |
use strict; |
use strict; |
use warnings; |
use warnings; |
|
use 5.010; |
|
|
local %ENV = (); |
local %ENV = (); |
|
|
|
|
use utils qw($TIMEOUT %ERRORS &support); |
use utils qw($TIMEOUT %ERRORS &support); |
|
|
$SIG{'ALRM'} = sub { |
$SIG{'ALRM'} = sub { |
print "ERROR: $PROGNAME timeout\n"; |
say "ERROR: $PROGNAME timeout"; |
exit $ERRORS{'UNKNOWN'}; |
exit $ERRORS{'UNKNOWN'}; |
}; |
}; |
alarm($TIMEOUT); |
alarm($TIMEOUT); |
|
|
} |
} |
|
|
if ($opt_V) { |
if ($opt_V) { |
print_revision( $PROGNAME, '$Revision$ ' ); |
print_revision(); |
exit $ERRORS{'OK'}; |
exit $ERRORS{'OK'}; |
} |
} |
|
|
|
|
} |
} |
} |
} |
if ( $have_results == 0 ) { |
if ( $have_results == 0 ) { |
print "No results found\n"; |
say 'No results found'; |
} |
} |
exit $ERRORS{$state}; |
exit $ERRORS{$state}; |
|
|
|
|
return %volumes; |
return %volumes; |
} |
} |
|
|
{ |
sub parse_bioctl_line { |
my $vid; |
($_) = @_; |
my $controller; |
chomp; |
|
|
sub parse_bioctl_line { |
my @o = map { s/^\s+|\s+$//g; $_ } split; |
($_) = @_; |
return if $o[0] eq 'Volume'; |
chomp; |
|
|
|
my @o = map { s/^\s+|\s+$//g; $_ } split; |
state $vid = ''; |
return if $o[0] eq 'Volume'; |
state $controller; |
|
|
$vid ||= ''; |
my $index = "$vid.$o[0]"; |
|
if ( $o[0] !~ /^\d+$/ ) { |
my $index = "$vid.$o[0]"; |
$controller = shift @o; |
if ( $o[0] !~ /^\d+$/ ) { |
$vid = $o[0]; |
$controller = shift @o; |
$index = $vid; |
$vid = $o[0]; |
|
$index = $vid; |
|
} |
|
|
|
return $index, |
|
{ |
|
controller => $controller, |
|
volume_id => $vid, |
|
id => shift @o, |
|
status => shift @o, |
|
size => shift @o, |
|
device => shift @o, |
|
name => shift @o, |
|
description => join ' ', |
|
@o, |
|
}; |
|
} |
} |
|
|
|
return $index, { |
|
controller => $controller, |
|
volume_id => $vid, |
|
id => shift @o, |
|
status => shift @o, |
|
size => shift @o, |
|
device => shift @o, |
|
name => shift @o, |
|
description => join ' ', @o, |
|
}; |
} |
} |
|
|
sub check_status { |
sub check_status { |
|
|
|
|
EOL |
EOL |
|
|
print_revision( $PROGNAME, '$Revision$' ); |
print_revision(); |
|
|
print $License; |
print $License; |
|
|
|
|
} |
} |
|
|
sub print_revision { |
sub print_revision { |
my ( $prog, $rev ) = @_; |
my $rev = '$Revision$'; |
$rev =~ s/^\D+([\d\.]+)\D+$/v$1/xms; |
$rev =~ s/^\D+([\d\.]+)\D+$/v$1/xms; |
|
|
print "$prog $rev\n"; |
say "$PROGNAME $rev"; |
|
|
return 1; |
return 1; |
} |
} |