diff options
author | Patrick J Cherry <patrick@bytemark.co.uk> | 2011-07-20 10:55:49 +0100 |
---|---|---|
committer | Patrick J Cherry <patrick@bytemark.co.uk> | 2011-07-20 10:55:49 +0100 |
commit | 53f89ba450850990057883a92f89ed994563e4ab (patch) | |
tree | 5de33c2f277f21273d608d09a28509c7d7158e7d /bin | |
parent | 594e38561993a5f8ba1d36bd854792f1d78b66ad (diff) |
Updated mauvesend to allow an absolute time to be specified.
--HG--
rename : bin/mauveclient => bin/mauvesend
Diffstat (limited to 'bin')
-rwxr-xr-x | bin/mauvesend (renamed from bin/mauveclient) | 39 |
1 files changed, 21 insertions, 18 deletions
diff --git a/bin/mauveclient b/bin/mauvesend index 77b8506..7b1375f 100755 --- a/bin/mauveclient +++ b/bin/mauvesend @@ -1,9 +1,9 @@ #! /usr/bin/ruby1.8 # NAME -# mauveclient - send alert(s) to a given alert station +# mauvesend - send alert(s) to a given alert station # # SYNOPSIS -# mauveclient [<destination>] +# mauvesend [<destination>] # [ --help | -h ] [ --manual | -m ] [ --version | -V ] # [--source | -o <source>] [--replace | -p] [--verbose | -v] # [--id <alertid> ... ] @@ -14,14 +14,14 @@ # The default port is 32741. # # If no destination is supplied, the value from the file -# /etc/mauvealert/mauveclient.destination is used. If no +# /etc/mauvealert/mauvesend.destination is used. If no # destination can be determined, an error is raised. # # If a hostname is given and no port is specified, SRV records # are used to determine where the alerts should go to. The SRV # prefix is _mauvealert._udp. If no SRV records are found, A # records are used instead. -# +# # IPv6 addresses can be used, but must be enclosed in square # brackets, e.g. [2001:41c8::12]. # @@ -80,12 +80,12 @@ # specified as any time in the past or future. The format is + or -, followed # by a number, followed by a letter determining the units, one of s, m, h, d, # representing seconds, minutes, hours, and days, respectively. If no units are -# specified, seconds is assumed. If no sign is specified, "+" is assumed. +# specified, seconds is assumed. If no sign or unit is specified, an absolute +# number of seconds since midnight UTC, 1st Jan 1970 is expected. # # Some example times are: # # now Immediately -# 10 In 10 seconds time # +10m In 10 minutes time # -10h 10 Hours ago # @@ -102,7 +102,7 @@ # host is sending a clear every 120 seconds, the raise time should be # greater than 240 seconds, preferably greater than 360 seconds to allow for # packets going missing, reducing the likelihood of false alerts. -# +# # Try to convey salient details about the alerts in the relevant fields. A # typical short alert from Mauve might read # @@ -111,18 +111,18 @@ # Make sure that the alert will be understood with just those three fields # displayed. # -# * Keep the summary brief and salient. -# +# * Keep the summary brief and salient. +# # * Keep the summary constant, unless there has been a material change to the # nature of the alert. Mauve may re-send any messages when the subject # changes. If something is changing quickly, like load averages, best not # to put them in the summary. # # * Make sure that the subject is set correctly. Remember if no subject is -# set, then the source of the alert is used instead. +# set, then the source of the alert is used instead. # # * Make sure that the source is correct too -- nothing worse than an alert -# that comes in with an ambiguous origin. +# that comes in with an ambiguous origin. # # * The alert ID is used internally by Mauve to keep alerts consistent. This # must be unique on a per-source basis. It is OK to have many alerts with the @@ -136,17 +136,17 @@ # # To raise an alert: # -# mauveclient -s smtp-out-1.example.com -i mailqueue \\ +# mauvesend -s smtp-out-1.example.com -i mailqueue \\ # -d "Mail queue has <b>54232</b> messages in it. That's <em>LOADS</em>" \\ # -u "Mail queue too big on outgoing SMTP server" -r -# +# # To clear an alert: # -# mauveclient -s smtp-out-1.example.com -i mailqueue -c +# mauvesend -s smtp-out-1.example.com -i mailqueue -c # # To create a "heartbeat" alert, i.e. one that says "Currently OK, but raise in the future if nothing more is heard": # -# mauveclient -i heartbeat -d "No heartbeat received for 1.2.3.4. Could be down!" -s "heartbeat failed" -c -r +10m +# mauvesend -i heartbeat -d "No heartbeat received for 1.2.3.4. Could be down!" -s "heartbeat failed" -c -r +10m # # SEE ALSO # @@ -185,6 +185,9 @@ def parse_time_spec(spec = "now") when "now" NOW + when /^\d+$/ + spec.to_i + when /^(\+|-)?(\d+)([smhd])?$/ if $1 == "-" multiplier = -1 @@ -214,7 +217,7 @@ begin update.replace = false update.alert = [] rescue NameError - # + # # Do nothing .. When generating manpages in the build process we don't need # to have Protobuf available. # @@ -227,7 +230,7 @@ begin version = false opts = GetoptLong.new( - ['-h', '--help', GetoptLong::NO_ARGUMENT], + ['-h', '--help', GetoptLong::NO_ARGUMENT], ['-m', '--manual', GetoptLong::NO_ARGUMENT], ['-V', '--version', GetoptLong::NO_ARGUMENT], ['-o', '--source', GetoptLong::OPTIONAL_ARGUMENT], @@ -297,7 +300,7 @@ begin break if line.empty? if help and !found_synopsis - found_synopsis = (line =~ /^#\s+SYNOPSIS\s*$/) + found_synopsis = (line =~ /^#\s+SYNOPSIS\s*$/) next end |