summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--THANKS.in1
-rwxr-xr-xplugins-scripts/check_mailq.pl41
2 files changed, 40 insertions, 2 deletions
diff --git a/THANKS.in b/THANKS.in
index e9196a58..aef787c2 100644
--- a/THANKS.in
+++ b/THANKS.in
@@ -304,3 +304,4 @@ Steve Weinreich
304Geoff Oakham 304Geoff Oakham
305Tim Laszlo 305Tim Laszlo
306Stéphane Bortzmeyer 306Stéphane Bortzmeyer
307Luca Corti
diff --git a/plugins-scripts/check_mailq.pl b/plugins-scripts/check_mailq.pl
index 9de8f02b..2a805b62 100755
--- a/plugins-scripts/check_mailq.pl
+++ b/plugins-scripts/check_mailq.pl
@@ -500,6 +500,43 @@ elsif ( $mailq eq "exim" ) {
500 } 500 }
501} # end of ($mailq eq "exim") 501} # end of ($mailq eq "exim")
502 502
503elsif ( $mailq eq "nullmailer" ) {
504 ## open mailq
505 if ( defined $utils::PATH_TO_MAILQ && -x $utils::PATH_TO_MAILQ ) {
506 if (! open (MAILQ, "$utils::PATH_TO_MAILQ | " ) ) {
507 print "ERROR: could not open $utils::PATH_TO_MAILQ \n";
508 exit $ERRORS{'UNKNOWN'};
509 }
510 }elsif( defined $utils::PATH_TO_MAILQ){
511 unless (-x $utils::PATH_TO_MAILQ) {
512 print "ERROR: $utils::PATH_TO_MAILQ is not executable by (uid $>:gid($)))\n";
513 exit $ERRORS{'UNKNOWN'};
514 }
515 } else {
516 print "ERROR: \$utils::PATH_TO_MAILQ is not defined\n";
517 exit $ERRORS{'UNKNOWN'};
518 }
519
520 while (<MAILQ>) {
521 #2006-06-22 16:00:00 282 bytes
522
523 if (/^[1-9][0-9]*-[01][0-9]-[0-3][0-9]\s[0-2][0-9]\:[0-2][0-9]\:[0-2][0-9]\s{2}[0-9]+\sbytes$/) {
524 $msg_q++ ;
525 }
526 }
527 close(MAILQ) ;
528 if ($msg_q < $opt_w) {
529 $msg = "OK: mailq ($msg_q) is below threshold ($opt_w/$opt_c)";
530 $state = $ERRORS{'OK'};
531 }elsif ($msg_q >= $opt_w && $msg_q < $opt_c) {
532 $msg = "WARNING: mailq is $msg_q (threshold w = $opt_w)";
533 $state = $ERRORS{'WARNING'};
534 }else {
535 $msg = "CRITICAL: mailq is $msg_q (threshold c = $opt_c)";
536 $state = $ERRORS{'CRITICAL'};
537 }
538} # end of ($mailq eq "nullmailer")
539
503# Perfdata support 540# Perfdata support
504print "$msg|unsent=$msg_q;$opt_w;$opt_c;0\n"; 541print "$msg|unsent=$msg_q;$opt_w;$opt_c;0\n";
505exit $state; 542exit $state;
@@ -559,7 +596,7 @@ sub process_arguments(){
559 } 596 }
560 597
561 if (defined $opt_M) { 598 if (defined $opt_M) {
562 if ($opt_M =~ /^(sendmail|qmail|postfix|exim)$/) { 599 if ($opt_M =~ /^(sendmail|qmail|postfix|exim|nullmailer)$/) {
563 $mailq = $opt_M ; 600 $mailq = $opt_M ;
564 }elsif( $opt_M eq ''){ 601 }elsif( $opt_M eq ''){
565 $mailq = 'sendmail'; 602 $mailq = 'sendmail';
@@ -591,7 +628,7 @@ sub print_help () {
591 print "-W (--Warning) = Min. number of messages for same domain in queue to generate warning\n"; 628 print "-W (--Warning) = Min. number of messages for same domain in queue to generate warning\n";
592 print "-C (--Critical) = Min. number of messages for same domain in queue to generate critical alert ( W < C )\n"; 629 print "-C (--Critical) = Min. number of messages for same domain in queue to generate critical alert ( W < C )\n";
593 print "-t (--timeout) = Plugin timeout in seconds (default = $utils::TIMEOUT)\n"; 630 print "-t (--timeout) = Plugin timeout in seconds (default = $utils::TIMEOUT)\n";
594 print "-M (--mailserver) = [ sendmail | qmail | postfix | exim ] (default = sendmail)\n"; 631 print "-M (--mailserver) = [ sendmail | qmail | postfix | exim | nullmailer ] (default = sendmail)\n";
595 print "-h (--help)\n"; 632 print "-h (--help)\n";
596 print "-V (--version)\n"; 633 print "-V (--version)\n";
597 print "-v (--verbose) = debugging output\n"; 634 print "-v (--verbose) = debugging output\n";