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; |