summaryrefslogtreecommitdiffstats
path: root/web/attachments/405293-check_file_age-diff
blob: 6b32f0d2e0995cdd40b60627980a5e60f9e0f3a9 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
--- /usr/libexec/nagios/plugins/check_file_age	2011-03-23 12:17:55.000000000 -0400
+++ /home/vargo/tmp/excavate/check_file_age	2011-03-23 12:18:49.000000000 -0400
@@ -32,7 +32,7 @@
 sub print_help ();
 sub print_usage ();
 
-my ($opt_c, $opt_f, $opt_w, $opt_C, $opt_W, $opt_h, $opt_V);
+my ($opt_c, $opt_f, $opt_w, $opt_C, $opt_W, $opt_h, $opt_V, $opt_i);
 my ($result, $message, $age, $size, $st);
 
 $PROGNAME="check_file_age";
@@ -47,6 +47,7 @@
 GetOptions(
 	"V"   => \$opt_V, "version"	=> \$opt_V,
 	"h"   => \$opt_h, "help"	=> \$opt_h,
+	"i"   => \$opt_i, "ignore-missing"	=> \$opt_i,
 	"f=s" => \$opt_f, "file"	=> \$opt_f,
 	"w=f" => \$opt_w, "warning-age=f" => \$opt_w,
 	"W=f" => \$opt_W, "warning-size=f" => \$opt_W,
@@ -72,8 +73,15 @@
 
 # Check that file exists (can be directory or link)
 unless (-e $opt_f) {
-	print "FILE_AGE CRITICAL: File not found - $opt_f\n";
-	exit $ERRORS{'CRITICAL'};
+	if ($opt_i) {
+		$result = 'OK';
+		print "FILE_AGE $result: $opt_f doesn't exist, but ignore-missing was set\n";
+		exit $ERRORS{$result};
+
+	} else {
+		print "FILE_AGE CRITICAL: File not found - $opt_f\n";
+		exit $ERRORS{'CRITICAL'};
+	}
 }
 
 $st = File::stat::stat($opt_f);
@@ -95,7 +103,7 @@
 
 sub print_usage () {
 	print "Usage:\n";
-	print "  $PROGNAME [-w <secs>] [-c <secs>] [-W <size>] [-C <size>] -f <file>\n";
+	print "  $PROGNAME [-w <secs>] [-c <secs>] [-W <size>] [-C <size>] [-i] -f <file>\n";
 	print "  $PROGNAME [-h | --help]\n";
 	print "  $PROGNAME [-V | --version]\n";
 }
@@ -105,6 +113,7 @@
 	print "Copyright (c) 2003 Steven Grimm\n\n";
 	print_usage();
 	print "\n";
+	print "  -i | --ignore-missing :  return OK if the file does not exist\n";
 	print "  <secs>  File must be no more than this many seconds old (default: warn 240 secs, crit 600)\n";
 	print "  <size>  File must be at least this many bytes long (default: crit 0 bytes)\n";
 	print "\n";