summaryrefslogtreecommitdiffstats
path: root/contrib/check_log2.pl
diff options
context:
space:
mode:
Diffstat (limited to 'contrib/check_log2.pl')
-rw-r--r--contrib/check_log2.pl27
1 files changed, 22 insertions, 5 deletions
diff --git a/contrib/check_log2.pl b/contrib/check_log2.pl
index befbf98d..61a11708 100644
--- a/contrib/check_log2.pl
+++ b/contrib/check_log2.pl
@@ -1,4 +1,6 @@
1#!/usr/bin/perl 1#!/usr/bin/perl -w
2#
3# $Id$
2# 4#
3# Log file regular expression detector for Nagios. 5# Log file regular expression detector for Nagios.
4# Written by Aaron Bostick (abostick@mydoconline.com) 6# Written by Aaron Bostick (abostick@mydoconline.com)
@@ -61,6 +63,7 @@ require 5.004;
61use lib $main::prog_dir; 63use lib $main::prog_dir;
62use utils qw($TIMEOUT %ERRORS &print_revision &support &usage); 64use utils qw($TIMEOUT %ERRORS &print_revision &support &usage);
63use Getopt::Long; 65use Getopt::Long;
66my ($dev,$ino,$mode,$nlink,$uid,$gid,$rdev,$size,$atime,$mtime,$ctime,$blksize,$blocks);
64 67
65sub print_usage (); 68sub print_usage ();
66sub print_version (); 69sub print_version ();
@@ -69,6 +72,7 @@ sub print_help ();
69 # Initialize strings 72 # Initialize strings
70 $log_file = ''; 73 $log_file = '';
71 $seek_file = ''; 74 $seek_file = '';
75 $critical = '';
72 $re_pattern = ''; 76 $re_pattern = '';
73 $neg_re_pattern = ''; 77 $neg_re_pattern = '';
74 $pattern_count = 0; 78 $pattern_count = 0;
@@ -79,6 +83,7 @@ sub print_help ();
79 GetOptions 83 GetOptions
80 ("l|logfile=s" => \$log_file, 84 ("l|logfile=s" => \$log_file,
81 "s|seekfile=s" => \$seek_file, 85 "s|seekfile=s" => \$seek_file,
86 "c|critical" => \$critical,
82 "p|pattern=s" => \$re_pattern, 87 "p|pattern=s" => \$re_pattern,
83 "n|negpattern:s" => \$neg_re_pattern, 88 "n|negpattern:s" => \$neg_re_pattern,
84 "v|version" => \$version, 89 "v|version" => \$version,
@@ -95,7 +100,7 @@ sub print_help ();
95 ($re_pattern) || usage("Regular expression not specified.\n"); 100 ($re_pattern) || usage("Regular expression not specified.\n");
96 101
97 # Open log file 102 # Open log file
98 open LOG_FILE, $log_file || die "Unable to open log file $log_file: $!"; 103 open (LOG_FILE, $log_file) || die "Unable to open log file $log_file: $!";
99 104
100 # Try to open log seek file. If open fails, we seek from beginning of 105 # Try to open log seek file. If open fails, we seek from beginning of
101 # file by default. 106 # file by default.
@@ -106,7 +111,8 @@ sub print_help ();
106 # If file is empty, no need to seek... 111 # If file is empty, no need to seek...
107 if ($seek_pos[0] != 0) { 112 if ($seek_pos[0] != 0) {
108 113
109 # Compare seek position to actual file size. If file size is smaller 114 # Compare seek position to actual file size.
115 # If file size is smaller
110 # then we just start from beginning i.e. file was rotated, etc. 116 # then we just start from beginning i.e. file was rotated, etc.
111 ($dev,$ino,$mode,$nlink,$uid,$gid,$rdev,$size,$atime,$mtime,$ctime,$blksize,$blocks) = stat(LOG_FILE); 117 ($dev,$ino,$mode,$nlink,$uid,$gid,$rdev,$size,$atime,$mtime,$ctime,$blksize,$blocks) = stat(LOG_FILE);
112 118
@@ -142,8 +148,17 @@ sub print_help ();
142 148
143 # Print result and return exit code. 149 # Print result and return exit code.
144 if ($pattern_count) { 150 if ($pattern_count) {
151 if ($critical) {
152 print "CRITICAL: ";
153 } else {
154 print "WARNING: ";
155 }
145 print "($pattern_count): $pattern_line"; 156 print "($pattern_count): $pattern_line";
146 exit $ERRORS{'WARNING'}; 157 if ($critical) {
158 exit $ERRORS{'CRITICAL'};
159 } else {
160 exit $ERRORS{'WARNING'};
161 }
147 } else { 162 } else {
148 print "OK - No matches found.\n"; 163 print "OK - No matches found.\n";
149 exit $ERRORS{'OK'}; 164 exit $ERRORS{'OK'};
@@ -154,7 +169,7 @@ sub print_help ();
154# 169#
155 170
156sub print_usage () { 171sub print_usage () {
157 print "Usage: $prog_name -l <log_file> -s <log_seek_file> -p <pattern> [-n <negpattern>]\n"; 172 print "Usage: $prog_name -l <log_file> -s <log_seek_file> -p <pattern> [-n <negpattern>] -c | --critical\n";
158 print "Usage: $prog_name [ -v | --version ]\n"; 173 print "Usage: $prog_name [ -v | --version ]\n";
159 print "Usage: $prog_name [ -h | --help ]\n"; 174 print "Usage: $prog_name [ -h | --help ]\n";
160} 175}
@@ -179,6 +194,8 @@ sub print_help () {
179 print " The regular expression to scan for in the log file\n"; 194 print " The regular expression to scan for in the log file\n";
180 print "-n, --negpattern=<negpattern>\n"; 195 print "-n, --negpattern=<negpattern>\n";
181 print " The regular expression to skip in the log file\n"; 196 print " The regular expression to skip in the log file\n";
197 print "-c, --critical\n";
198 print " Return critical instead of warning on error\n";
182 print "\n"; 199 print "\n";
183 support(); 200 support();
184 exit $ERRORS{'OK'}; 201 exit $ERRORS{'OK'};