check_from_file 0.1.0 → 0.2.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/check_from_file/check.rb +21 -7
- data/lib/check_from_file/cli.rb +10 -0
- data/lib/check_from_file/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 901a66f425cf19a6cef69a5c840af0aa9807dee4
|
4
|
+
data.tar.gz: f6bfd14981015a516b098d126808a9d7ebe7b4cd
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: ab967cd5745ccaee048213d96f55d9a76198dc70ce7eb4e7a7f214823c05eeb034a553726798b829ec52dfdc977aedad84376af00326ca4cd5e962c946b3c970
|
7
|
+
data.tar.gz: 4c3a84eb78718991b9d7414da073b24f130aa6bff3de2ecb74ff43424e2908a876d80bfac681f27e05b55d526fd4938e31b7b770efe9135df94d908c75a7f74d
|
@@ -5,17 +5,17 @@ module CheckFromFile
|
|
5
5
|
class Check < Nagios::Plugin
|
6
6
|
def initialize(options)
|
7
7
|
@options = options
|
8
|
+
@warning = false
|
9
|
+
@critical = false
|
8
10
|
end
|
9
11
|
|
10
12
|
def critical?
|
11
|
-
unless @return == 0
|
12
|
-
|
13
|
-
return false
|
14
|
-
end
|
13
|
+
@critical = true unless @return == 0
|
14
|
+
return @critical
|
15
15
|
end
|
16
16
|
|
17
17
|
def warning?
|
18
|
-
|
18
|
+
return @warning
|
19
19
|
end
|
20
20
|
|
21
21
|
def ok?
|
@@ -23,19 +23,33 @@ module CheckFromFile
|
|
23
23
|
end
|
24
24
|
|
25
25
|
def check
|
26
|
+
[:return, :stdout, :stderr].each do |file|
|
27
|
+
@age = (Time.now - File.stat(@options[file]).mtime).to_i
|
28
|
+
case
|
29
|
+
when @age >= @options[:file_age_critical]
|
30
|
+
@stale = @critical = true
|
31
|
+
break
|
32
|
+
when @age >= @options[:file_age_warning]
|
33
|
+
@stale = @warning = true
|
34
|
+
break
|
35
|
+
end
|
36
|
+
end
|
37
|
+
|
26
38
|
@return = File.read(@options[:return]).to_i
|
27
39
|
@stdout = File.read(@options[:stdout])
|
28
40
|
@stderr = File.read(@options[:stderr])
|
29
41
|
end
|
30
42
|
|
31
43
|
def message
|
44
|
+
return "One or more output files are #{@age} seconds old!" if @stale
|
45
|
+
|
32
46
|
ret = "Command: #{@options[:command]} returned "
|
33
|
-
if @
|
47
|
+
if @critical
|
34
48
|
ret << "#{@return}, STDOUT: #{@stdout}, STDERR: #{@stderr}"
|
35
49
|
else
|
36
50
|
ret << "successfully"
|
37
51
|
end
|
38
|
-
ret
|
52
|
+
return ret
|
39
53
|
end
|
40
54
|
end
|
41
55
|
end
|
data/lib/check_from_file/cli.rb
CHANGED
@@ -6,6 +6,8 @@ module CheckFromFile
|
|
6
6
|
class CLI
|
7
7
|
def self.parse(args)
|
8
8
|
options = OpenStruct.new
|
9
|
+
options[:file_age_warning] = 150
|
10
|
+
options[:file_age_critical] = 300
|
9
11
|
|
10
12
|
opt_parser = OptionParser.new do |opts|
|
11
13
|
opts.banner = "Usage: #{$0} -c <command> -o <stdout> -e <stderr> -r <ret>"
|
@@ -26,6 +28,14 @@ module CheckFromFile
|
|
26
28
|
options[:return] = ret
|
27
29
|
end
|
28
30
|
|
31
|
+
opts.on('-W', '--file-age-warn SECONDS', 'WARN when file is older than SECONDS. Default: 150') do |ret|
|
32
|
+
options[:file_age_warning] = ret.to_i
|
33
|
+
end
|
34
|
+
|
35
|
+
opts.on('-C', '--file-age-crit SECONDS', 'CRIT when file is older than SECONDS. Default: 300') do |ret|
|
36
|
+
options[:file_age_critical] = ret.to_i
|
37
|
+
end
|
38
|
+
|
29
39
|
opts.on_tail("-h", "--help", "Show this message") do
|
30
40
|
puts opts
|
31
41
|
exit
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: check_from_file
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Travis Thompson
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2016-01-12 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|