aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--plugins-scripts/check_ifoperstatus.pl21
-rwxr-xr-xplugins-scripts/check_ifstatus.pl11
2 files changed, 23 insertions, 9 deletions
diff --git a/plugins-scripts/check_ifoperstatus.pl b/plugins-scripts/check_ifoperstatus.pl
index 8a23ca5e..a43e9f4d 100644
--- a/plugins-scripts/check_ifoperstatus.pl
+++ b/plugins-scripts/check_ifoperstatus.pl
@@ -47,6 +47,7 @@ sub print_help ();
sub usage ();
sub process_arguments ();
+my $timeout;
my $status;
my %ifOperStatus = ('1','up',
'2','down',
@@ -87,6 +88,9 @@ my $lastc;
my $dormantWarn;
my $name;
+### Validate Arguments
+
+$status = process_arguments();
# Just in case of problems, let's not hang Nagios
@@ -94,12 +98,8 @@ $SIG{'ALRM'} = sub {
print ("ERROR: No snmp response from $hostname (alarm)\n");
exit $ERRORS{"UNKNOWN"};
};
-alarm($TIMEOUT);
-
-
-### Validate Arguments
-$status = process_arguments();
+alarm($timeout);
## map ifdescr to ifindex - should look at being able to cache this value
@@ -287,6 +287,7 @@ sub print_help() {
printf " (Implies the use of -I)\n";
printf " -w (--warn =i|w|c) ignore|warn|crit if the interface is dormant (default critical)\n";
printf " -M (--maxmsgsize) Max message size - usefull only for v1 or v2c\n";
+ printf " -t (--timeout) seconds before the plugin times out (default=$TIMEOUT)\n";
printf " -V (--version) Plugin version\n";
printf " -h (--help) usage help \n\n";
printf " -k or -d must be specified\n\n";
@@ -313,12 +314,14 @@ sub process_arguments() {
"k=i" => \$snmpkey, "key=i",\$snmpkey,
"d=s" => \$ifdescr, "descr=s" => \$ifdescr,
"l=s" => \$lastc, "lastchange=s" => \$lastc,
- "p=i" = >\$port, "port=i" =>\$port,
+ "p=i" => \$port, "port=i" =>\$port,
"H=s" => \$hostname, "hostname=s" => \$hostname,
"I" => \$ifXTable, "ifmib" => \$ifXTable,
"n=s" => \$ifName, "name=s" => \$ifName,
"w=s" => \$dormantWarn, "warn=s" => \$dormantWarn,
- "M=i" => \$maxmsgsize, "maxmsgsize=i" => \$maxmsgsize);
+ "M=i" => \$maxmsgsize, "maxmsgsize=i" => \$maxmsgsize,
+ "t=i" => \$timeout, "timeout=i" => \$timeout,
+ );
@@ -361,6 +364,10 @@ sub process_arguments() {
}
}
+ unless (defined $timeout) {
+ $timeout = $TIMEOUT;
+ }
+
if ($snmp_version =~ /3/ ) {
# Must define a security level even though default is noAuthNoPriv
# v3 requires a security username
diff --git a/plugins-scripts/check_ifstatus.pl b/plugins-scripts/check_ifstatus.pl
index 4f177116..7452394d 100755
--- a/plugins-scripts/check_ifstatus.pl
+++ b/plugins-scripts/check_ifstatus.pl
@@ -56,6 +56,7 @@ my %ifOperStatus = ('1','up',
'6','notPresent',
'7','lowerLayerDown'); # down due to the state of lower layer interface(s));
+my $timeout ;
my $state = "UNKNOWN";
my $answer = "";
my $snmpkey=0;
@@ -114,7 +115,7 @@ if ($status != 0)
}
-alarm($TIMEOUT);
+alarm($timeout);
push(@snmpoids,$snmpIfOperStatus);
push(@snmpoids,$snmpIfAdminStatus);
@@ -251,6 +252,7 @@ sub print_help (){
printf " in hex with 0x prefix generated by using \"snmpkey\" utility\n";
printf " privacy password and authEngineID\n";
printf " -M (--maxmsgsize) Max message size - usefull only for v1 or v2c\n";
+ printf " -t (--timeout) seconds before the plugin times out (default=$TIMEOUT)\n";
printf " -V (--version) Plugin version\n";
printf " -h (--help) usage help \n\n";
print_revision($PROGNAME, '$Revision$');
@@ -274,7 +276,9 @@ sub process_arguments() {
"I" => \$ifXTable, "ifmib" => \$ifXTable,
"x:s" => \$opt_x, "exclude:s" => \$opt_x,
"u=s" => \$opt_u, "unused_ports=s" => \$opt_u,
- "M=i" => \$maxmsgsize, "maxmsgsize=i" => \$maxmsgsize);
+ "M=i" => \$maxmsgsize, "maxmsgsize=i" => \$maxmsgsize,
+ "t=i" => \$timeout, "timeout=i" => \$timeout,
+ );
if ($status == 0){
print_help() ;
@@ -290,6 +294,9 @@ sub process_arguments() {
exit $ERRORS{'OK'};
}
+ unless (defined $timeout) {
+ $timeout = $TIMEOUT;
+ }
if ($snmp_version =~ /3/ ) {
# Must define a security level even though default is noAuthNoPriv