notifyme 0.3 → 0.4
Sign up to get free protection for your applications and to get access to all the features.
- data/README.rdoc +57 -4
- data/lib/notifyme/log/mail.rb +19 -4
- data/lib/notifyme/start.rb +1 -1
- data/notifyme_config.rb +30 -13
- metadata +8 -8
data/README.rdoc
CHANGED
@@ -22,7 +22,60 @@ $ notifyme_daemon stop
|
|
22
22
|
|
23
23
|
== Example
|
24
24
|
|
25
|
-
|
25
|
+
== Check HTTP Server (e.g. Nginx)
|
26
|
+
|
27
|
+
require 'socket'
|
28
|
+
|
29
|
+
NotifyMe::Start.config do
|
30
|
+
# output to the console
|
31
|
+
log :stdout
|
32
|
+
|
33
|
+
# output format is text
|
34
|
+
log_format :text
|
35
|
+
|
36
|
+
# define the task
|
37
|
+
task :checking_http_server do |t|
|
38
|
+
|
39
|
+
# running every 5 seconds
|
40
|
+
t.sleep_time = 5
|
41
|
+
|
42
|
+
# checking command
|
43
|
+
t.command = lambda {
|
44
|
+
begin
|
45
|
+
TCPSocket.new('localhost', 80)
|
46
|
+
nil
|
47
|
+
rescue Exception => e
|
48
|
+
e.to_s
|
49
|
+
end
|
50
|
+
}
|
51
|
+
|
52
|
+
# if the server is not running, the restart_command will be executed
|
53
|
+
t.restart_command = lambda { %x{/etc/init.d/nginx start} }
|
54
|
+
end
|
55
|
+
|
56
|
+
end
|
57
|
+
|
58
|
+
== Check the "cupsd" process (from "ps -e")
|
59
|
+
|
60
|
+
NotifyMe::Start.config do
|
61
|
+
log :stdout
|
62
|
+
log_format :json
|
63
|
+
task :checking_cupsd do |t|
|
64
|
+
t.sleep_time = 5
|
65
|
+
t.command = lambda {
|
66
|
+
if %x{ps -e}.include? " cupsd"
|
67
|
+
nil
|
68
|
+
else
|
69
|
+
"Warnning: the process cupsd is not running!"
|
70
|
+
end
|
71
|
+
}
|
72
|
+
t.restart_command = lambda {
|
73
|
+
`/etc/init.d/cups start`
|
74
|
+
}
|
75
|
+
end
|
76
|
+
end
|
77
|
+
|
78
|
+
More please check the notifyme_config.rb file.
|
26
79
|
|
27
80
|
== Output
|
28
81
|
|
@@ -30,8 +83,8 @@ The output from every task's command will be processed (send to endpoint) only i
|
|
30
83
|
|
31
84
|
== Version
|
32
85
|
|
33
|
-
v 0.
|
86
|
+
v 0.4
|
34
87
|
|
35
|
-
==
|
88
|
+
== TODO
|
36
89
|
|
37
|
-
|
90
|
+
Add some SPECS
|
data/lib/notifyme/log/mail.rb
CHANGED
@@ -36,19 +36,34 @@ module NotifyMe
|
|
36
36
|
)
|
37
37
|
|
38
38
|
# go go go!
|
39
|
+
recipients = if param[:to_email].is_a? Hash
|
40
|
+
param[:to_email].values
|
41
|
+
else
|
42
|
+
param[:to_email]
|
43
|
+
end
|
39
44
|
smtp.start(param[:helo_domain] || default_host,
|
40
45
|
param[:account],
|
41
46
|
param[:password],
|
42
|
-
param[:authtype] || :plain
|
43
|
-
|
44
|
-
|
47
|
+
param[:authtype] || :plain
|
48
|
+
) do |mail|
|
49
|
+
mail.send_message message(param, task), param[:from_email], recipients
|
50
|
+
end
|
45
51
|
end
|
46
52
|
|
47
53
|
private
|
48
54
|
def message(param, task)
|
55
|
+
to = case param[:to_email]
|
56
|
+
when Hash
|
57
|
+
param[:to_email].collect{|k, v| "#{k} <#{v}>" }.join(', ')
|
58
|
+
when Array
|
59
|
+
param[:to_email].collect{|v| "#{v.split('@').first} <#{v}>"}.join(", ")
|
60
|
+
else
|
61
|
+
"#{param[:to_name] || param[:to_email].split('@').first} <#{param[:to_email]}>"
|
62
|
+
end
|
63
|
+
|
49
64
|
time = Time.now
|
50
65
|
"From: #{param[:from_name] || param[:from_email]} <#{param[:from_email]}>\r\n" \
|
51
|
-
<< "To: #{
|
66
|
+
<< "To: #{to}\r\n" \
|
52
67
|
<< "Subject: #{param[:subject]}\r\n" \
|
53
68
|
<< "Date: #{time.to_s}\r\n" \
|
54
69
|
<< "Content-type: text/plain; charset=UTF-8\r\n" \
|
data/lib/notifyme/start.rb
CHANGED
data/notifyme_config.rb
CHANGED
@@ -1,9 +1,3 @@
|
|
1
|
-
class MyTask
|
2
|
-
def call
|
3
|
-
Time.now.to_s
|
4
|
-
end
|
5
|
-
end
|
6
|
-
|
7
1
|
NotifyMe::Start.config do
|
8
2
|
log :stdout
|
9
3
|
|
@@ -18,8 +12,13 @@ NotifyMe::Start.config do
|
|
18
12
|
|
19
13
|
:from_email => 'from@gmail.com',
|
20
14
|
:from_name => 'from name',
|
15
|
+
|
21
16
|
:to_email => 'to@gmail.com',
|
22
17
|
:to_name => 'to name'
|
18
|
+
|
19
|
+
# or
|
20
|
+
:to_email => {'User a' => 'a@gmail.com', 'User b' => 'b@gmail.com'}
|
21
|
+
:to_email => ['User a <a@gmail.com>', 'User b<b@gmail.com']
|
23
22
|
=end
|
24
23
|
|
25
24
|
# log :file, '/tmp/test.txt'
|
@@ -33,14 +32,32 @@ NotifyMe::Start.config do
|
|
33
32
|
|
34
33
|
# add some tasks
|
35
34
|
|
36
|
-
|
37
|
-
|
38
|
-
|
35
|
+
#
|
36
|
+
# check disk space usage every 60 seconds,
|
37
|
+
# if one of the disks' space usage > 95%, notification will be sent.
|
38
|
+
#
|
39
|
+
task :checking_disk_usage do |t|
|
40
|
+
t.sleep_time = 60
|
41
|
+
t.command = lambda {
|
42
|
+
if %x{df -h}.scan(/\s+(\d+)%\s+/).find {|pcent| pcent.first.to_i > 95}
|
43
|
+
"Warnning: at least 1 disk space usage > 95%"
|
44
|
+
else
|
45
|
+
nil
|
46
|
+
end
|
47
|
+
}
|
39
48
|
end
|
40
49
|
|
41
|
-
task :
|
42
|
-
t.sleep_time =
|
43
|
-
t.command =
|
44
|
-
|
50
|
+
task :checking_localhost_http do |t|
|
51
|
+
t.sleep_time = 5
|
52
|
+
t.command = lambda {
|
53
|
+
require 'socket'
|
54
|
+
begin
|
55
|
+
TCPSocket.new('localhost', 80)
|
56
|
+
nil
|
57
|
+
rescue Exception => e
|
58
|
+
e.to_s
|
59
|
+
end
|
60
|
+
}
|
61
|
+
t.restart_command = lambda { %x{/etc/init.d/httpd start} }
|
45
62
|
end
|
46
63
|
end
|
metadata
CHANGED
@@ -4,8 +4,8 @@ version: !ruby/object:Gem::Version
|
|
4
4
|
prerelease: false
|
5
5
|
segments:
|
6
6
|
- 0
|
7
|
-
-
|
8
|
-
version: "0.
|
7
|
+
- 4
|
8
|
+
version: "0.4"
|
9
9
|
platform: ruby
|
10
10
|
authors:
|
11
11
|
- xianhua.zhou
|
@@ -13,7 +13,7 @@ autorequire:
|
|
13
13
|
bindir: bin
|
14
14
|
cert_chain: []
|
15
15
|
|
16
|
-
date:
|
16
|
+
date: 2011-09-03 00:00:00 +08:00
|
17
17
|
default_executable: notifyme_daemon
|
18
18
|
dependencies:
|
19
19
|
- !ruby/object:Gem::Dependency
|
@@ -56,20 +56,20 @@ extensions: []
|
|
56
56
|
extra_rdoc_files: []
|
57
57
|
|
58
58
|
files:
|
59
|
+
- lib/notifyme.rb
|
59
60
|
- lib/vendor/smtp_add_tls_support.rb
|
60
|
-
- lib/notifyme/log
|
61
|
+
- lib/notifyme/log.rb
|
62
|
+
- lib/notifyme/task.rb
|
61
63
|
- lib/notifyme/log/mail.rb
|
64
|
+
- lib/notifyme/log/stdout.rb
|
62
65
|
- lib/notifyme/log/file.rb
|
63
|
-
- lib/notifyme/task.rb
|
64
66
|
- lib/notifyme/start.rb
|
65
|
-
- lib/notifyme/log.rb
|
66
|
-
- lib/notifyme.rb
|
67
67
|
- README.rdoc
|
68
68
|
- CHANGELOG
|
69
69
|
- INSTALL
|
70
70
|
- notifyme_config.rb
|
71
|
-
- bin/notifyme
|
72
71
|
- bin/notifyme_daemon
|
72
|
+
- bin/notifyme
|
73
73
|
has_rdoc: true
|
74
74
|
homepage: http://github.com/xianhuazhou/NotifyMe
|
75
75
|
licenses: []
|