| version 1.10, 2015/03/26 04:44:15 |
version 1.11, 2024/06/09 23:34:58 |
|
|
| #!/usr/bin/perl -T |
#!/usr/bin/perl -T |
| # $AFresh1: check_openbgpd,v 1.9 2015/03/26 03:42:23 andrew Exp $ |
# $AFresh1: check_openbgpd,v 1.10 2015/03/26 03:44:15 andrew Exp $ |
| ######################################################################## |
######################################################################## |
| # check_openbgpd *** A nagios check for OpenBSD bgpd |
# check_openbgpd *** A nagios check for OpenBSD bgpd |
| # |
# |
|
|
| sub parse_check { |
sub parse_check { |
| my $check = shift; |
my $check = shift; |
| |
|
| return { match => [] } unless $check; |
unless ($check) { |
| |
print_help(); |
| |
exit $ERRORS{'OK'} |
| |
} |
| |
|
| my @values = split /,\s*/xms, $check; |
my @values = split /,\s*/xms, $check; |
| |
|
| my %c = ( match => [] ); |
my %c = ( match => [] ); |
|
|
| |
|
| my $opt = shift @argv; |
my $opt = shift @argv; |
| for ($opt) { |
for ($opt) { |
| when ( '-V' || '--version' ) { |
if ( $_ eq '-V' || $_ eq '--version' ) { |
| print_revision( $PROGNAME, '$Revision$ ' ); |
print_revision( $PROGNAME, '$Revision$ ' ); |
| exit $ERRORS{'OK'} |
exit $ERRORS{'OK'} |
| } |
} |
| when (/^-?-h(?:elp)?/xms) { print_help(); exit $ERRORS{'OK'} } |
elsif (/^-?-h(?:elp)?\Z/xms) { print_help(); exit $ERRORS{'OK'} } |
| when (/^-?-s(?:ocket)?/xms) { $checks{_SOCKET} = shift @argv } |
elsif (/^-?-s(?:ocket)?\Z/xms) { |
| when (/^-?-w(?:arning)?/xms) { $w = parse_check( shift @argv ) } |
$checks{_SOCKET} = shift @argv |
| when (/^-?-c(?:ritical)?/xms) { $c = parse_check( shift @argv ) } |
|| do { print_help(); exit $ERRORS{'OK'} } |
| when (/^-?-u(?:nknown)?/xms) { |
} |
| |
elsif (/^-?-w(?:arning)?\Z/xms) { $w = parse_check( shift @argv ) } |
| |
elsif (/^-?-c(?:ritical)?\Z/xms) { $c = parse_check( shift @argv ) } |
| |
elsif (/^-?-u(?:nknown)?\Z/xms) { |
| $checks{_UNKNOWN} = { |
$checks{_UNKNOWN} = { |
| WARNING => $w, |
WARNING => $w, |
| CRITICAL => $c, |
CRITICAL => $c, |
| }; |
}; |
| } |
} |
| when (/^-?-n(?:eighbor)?/xms) { |
elsif (/^-?-n(?:eighbor)?\Z/xms) { |
| while ( @argv && $argv[0] !~ /^-/xms ) { |
while ( @argv && $argv[0] !~ /^-/xms ) { |
| $checks{ shift @argv } = { |
$checks{ shift @argv } = { |
| WARNING => $w, |
WARNING => $w, |
|
|
| }; |
}; |
| } |
} |
| } |
} |
| default { print_help(); exit $ERRORS{'UNKNOWN'} } |
else { print_help(); exit $ERRORS{'UNKNOWN'} } |
| } |
} |
| } |
} |
| return %checks; |
return %checks; |