X-Git-Url: https://git.tokkee.org/?a=blobdiff_plain;f=plugins-scripts%2Fcheck_mailq.pl;h=31eb46a4d5aa93da85f39e07e25b93f8930e6c39;hb=5ebe25fc24d33cf2d7b46fce9e746a58e0115010;hp=aaec2515c8379b8e1646600c17bd21f2fe999eb7;hpb=9328b585951a9c91cae140e93a1929591f4b4cf6;p=nagiosplug.git diff --git a/plugins-scripts/check_mailq.pl b/plugins-scripts/check_mailq.pl index aaec251..31eb46a 100755 --- a/plugins-scripts/check_mailq.pl +++ b/plugins-scripts/check_mailq.pl @@ -22,6 +22,7 @@ # along with this program; if not, write to the Free Software # Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. # +# ############################################################################ use POSIX; @@ -171,7 +172,7 @@ if ($mailq eq "sendmail") { # multi queue: one for each queue. overwrite on multi queue below $msg_q = $1 ; } - } elsif (/^\s+Total\sRequests:\s(\d+)$/) { + } elsif (/^\s+Total\sRequests:\s(\d+)$/i) { print "$utils::PATH_TO_MAILQ = $_ \n" if $verbose ; # # multi queue: last line @@ -184,12 +185,10 @@ if ($mailq eq "sendmail") { ## close mailq close (MAILQ); - # declare an error if we also get a non-zero return code from mailq - # unless already set to critical + if ( $? ) { - $state = $state == $ERRORS{"CRITICAL"} ? $ERRORS{"CRITICAL"} : $ERRORS{"WARNING"} ; - print "STDERR $?: $!\n" if $verbose; - $msg = "$state: (stderr)\n"; + print "CRITICAL: Error code ".($?>>8)." returned from $utils::PATH_TO_MAILQ",$/; + exit $ERRORS{CRITICAL}; } ## shut off the alarm @@ -316,12 +315,10 @@ elsif ( $mailq eq "postfix" ) { # close qmail-qstat close MAILQ; - # declare an error if we also get a non-zero return code from mailq - # unless already set to critical + if ( $? ) { - $state = $state == $ERRORS{"CRITICAL"} ? $ERRORS{"CRITICAL"} : $ERRORS{"WARNING"} ; - print "STDERR $?: $!\n" if $verbose; - $msg = "$state: (stderr)\n"; + print "CRITICAL: Error code ".($?>>8)." returned from $utils::PATH_TO_MAILQ",$/; + exit $ERRORS{CRITICAL}; } ## shut off the alarm @@ -399,12 +396,10 @@ elsif ( $mailq eq "qmail" ) { # close qmail-qstat close MAILQ; - # declare an error if we also get a non-zero return code from mailq - # unless already set to critical + if ( $? ) { - $state = $state == $ERRORS{"CRITICAL"} ? $ERRORS{"CRITICAL"} : $ERRORS{"WARNING"} ; - print "STDERR $?: $!\n" if $verbose; - $msg = "$state: (stderr)\n"; + print "CRITICAL: Error code ".($?>>8)." returned from $utils::PATH_TO_MAILQ",$/; + exit $ERRORS{CRITICAL}; } ## shut off the alarm @@ -488,6 +483,11 @@ elsif ( $mailq eq "exim" ) { } } close(MAILQ) ; + + if ( $? ) { + print "CRITICAL: Error code ".($?>>8)." returned from $utils::PATH_TO_MAILQ",$/; + exit $ERRORS{CRITICAL}; + } if ($msg_q < $opt_w) { $msg = "OK: mailq ($msg_q) is below threshold ($opt_w/$opt_c)"; $state = $ERRORS{'OK'}; @@ -517,13 +517,11 @@ sub process_arguments(){ "M:s" => \$opt_M, "mailserver:s" => \$opt_M, # mailserver (default sendmail) "w=i" => \$opt_w, "warning=i" => \$opt_w, # warning if above this number "c=i" => \$opt_c, "critical=i" => \$opt_c, # critical if above this number - "W=i" => \$opt_W, "Warning=i" => \$opt_W, # warning if above this number - "C=i" => \$opt_C, "Critical=i" => \$opt_C, # critical if above this number "t=i" => \$opt_t, "timeout=i" => \$opt_t ); if ($opt_V) { - print_revision($PROGNAME,'$Revision$ '); + print_revision($PROGNAME,'@NP_VERSION@'); exit $ERRORS{'OK'}; } @@ -581,7 +579,7 @@ sub print_usage () { } sub print_help () { - print_revision($PROGNAME,'$Revision$'); + print_revision($PROGNAME,'@NP_VERSION@'); print "Copyright (c) 2002 Subhendu Ghosh/Carlos Canau/Benjamin Schmid\n"; print "\n"; print_usage(); @@ -589,7 +587,7 @@ sub print_help () { print " Checks the number of messages in the mail queue (supports multiple sendmail queues, qmail)\n"; print " Feedback/patches to support non-sendmail mailqueue welcome\n\n"; print "-w (--warning) = Min. number of messages in queue to generate warning\n"; - print "-c (--critical) = Min. number of messages in queu to generate critical alert ( w < c )\n"; + print "-c (--critical) = Min. number of messages in queue to generate critical alert ( w < c )\n"; print "-W (--Warning) = Min. number of messages for same domain in queue to generate warning\n"; print "-C (--Critical) = Min. number of messages for same domain in queue to generate critical alert ( W < C )\n"; print "-t (--timeout) = Plugin timeout in seconds (default = $utils::TIMEOUT)\n";