[Nagiosplug-checkins] nagiosplug/contrib check_log2.pl,1.1,1.2

Harper Mann harpermann at users.sourceforge.net
Fri Dec 16 10:42:26 CET 2005


Update of /cvsroot/nagiosplug/nagiosplug/contrib
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv5210

Modified Files:
	check_log2.pl 
Log Message:
Added ability to output critical on error. Fixed open so it properly fails if the log file open throws an error, turned on -w in the perl call, fixed warnings


Index: check_log2.pl
===================================================================
RCS file: /cvsroot/nagiosplug/nagiosplug/contrib/check_log2.pl,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -d -r1.1 -r1.2
--- check_log2.pl	23 May 2002 16:39:59 -0000	1.1
+++ check_log2.pl	16 Dec 2005 18:41:45 -0000	1.2
@@ -1,4 +1,6 @@
-#!/usr/bin/perl
+#!/usr/bin/perl -w
+#
+# $Id$
 #
 # Log file regular expression detector for Nagios.
 # Written by Aaron Bostick (abostick at mydoconline.com)
@@ -61,6 +63,7 @@
 use lib $main::prog_dir;
 use utils qw($TIMEOUT %ERRORS &print_revision &support &usage);
 use Getopt::Long;
+my  ($dev,$ino,$mode,$nlink,$uid,$gid,$rdev,$size,$atime,$mtime,$ctime,$blksize,$blocks);
 
 sub print_usage ();
 sub print_version ();
@@ -69,6 +72,7 @@
     # Initialize strings
     $log_file = '';
     $seek_file = '';
+    $critical = '';
     $re_pattern = '';
     $neg_re_pattern = '';
     $pattern_count = 0;
@@ -79,6 +83,7 @@
     GetOptions
     ("l|logfile=s"      => \$log_file,
      "s|seekfile=s"     => \$seek_file,
+     "c|critical"       => \$critical,
      "p|pattern=s"      => \$re_pattern,
      "n|negpattern:s"   => \$neg_re_pattern,
      "v|version"        => \$version,
@@ -95,7 +100,7 @@
     ($re_pattern) || usage("Regular expression not specified.\n");
 
     # Open log file
-    open LOG_FILE, $log_file || die "Unable to open log file $log_file: $!";
+    open (LOG_FILE, $log_file) || die "Unable to open log file $log_file: $!";
 
     # Try to open log seek file.  If open fails, we seek from beginning of
     # file by default.
@@ -106,7 +111,8 @@
         #  If file is empty, no need to seek...
         if ($seek_pos[0] != 0) {
             
-            # Compare seek position to actual file size.  If file size is smaller
+            # Compare seek position to actual file size.  
+			# If file size is smaller
             # then we just start from beginning i.e. file was rotated, etc.
             ($dev,$ino,$mode,$nlink,$uid,$gid,$rdev,$size,$atime,$mtime,$ctime,$blksize,$blocks) = stat(LOG_FILE);
 
@@ -142,8 +148,17 @@
 
     # Print result and return exit code.
     if ($pattern_count) {
+		if ($critical) { 
+			print "CRITICAL: ";
+		} else {
+			print "WARNING: ";
+		}
         print "($pattern_count): $pattern_line";
-        exit $ERRORS{'WARNING'};
+		if ($critical) { 
+			exit $ERRORS{'CRITICAL'}; 
+		} else {
+			exit $ERRORS{'WARNING'}; 
+		}
     } else {
         print "OK - No matches found.\n";
         exit $ERRORS{'OK'};
@@ -154,7 +169,7 @@
 #
 
 sub print_usage () {
-    print "Usage: $prog_name -l <log_file> -s <log_seek_file> -p <pattern> [-n <negpattern>]\n";
+    print "Usage: $prog_name -l <log_file> -s <log_seek_file> -p <pattern> [-n <negpattern>] -c | --critical\n";
     print "Usage: $prog_name [ -v | --version ]\n";
     print "Usage: $prog_name [ -h | --help ]\n";
 }
@@ -179,6 +194,8 @@
     print "    The regular expression to scan for in the log file\n";
     print "-n, --negpattern=<negpattern>\n";
     print "    The regular expression to skip in the log file\n";
+    print "-c, --critical\n";
+    print "    Return critical instead of warning on error\n";
     print "\n";
     support();
     exit $ERRORS{'OK'};





More information about the Commits mailing list