diff options
| author | makefu <github@syntax-fehler.de> | 2012-10-05 06:46:27 +0200 | 
|---|---|---|
| committer | makefu <github@syntax-fehler.de> | 2012-10-05 06:46:27 +0200 | 
| commit | 6c89839b7fc344608e61c8916ac9d9925fa98d14 (patch) | |
| tree | e316b8121f4880491659dc3cb8851de7762e58a9 /Monitoring/nagios/plugins/notify_irc | |
| parent | 957e2d7469b0e3d88e06b6a15e91478efc63cd62 (diff) | |
Monitoring/\* --> nagios/
Diffstat (limited to 'Monitoring/nagios/plugins/notify_irc')
| -rwxr-xr-x | Monitoring/nagios/plugins/notify_irc | 87 | 
1 files changed, 87 insertions, 0 deletions
| diff --git a/Monitoring/nagios/plugins/notify_irc b/Monitoring/nagios/plugins/notify_irc new file mode 100755 index 00000000..e1de0866 --- /dev/null +++ b/Monitoring/nagios/plugins/notify_irc @@ -0,0 +1,87 @@ +#! /usr/bin/env python +# +# Example program using irclib.py. +# +# This program is free without restrictions; do anything you like with +# it. +# +# Joel Rosdahl <joel@rosdahl.net> + +import irclib +import sys +#irclib.DEBUG= True +class IRCCat(irclib.SimpleIRCClient): +    def __init__(self, target,msg=""): +        irclib.SimpleIRCClient.__init__(self) +        self.target = target +        self.msg = msg + +    def on_welcome(self, connection, event): +        if irclib.is_channel(self.target): +            connection.join(self.target) +        else: +            self.send_it() + +    def on_join(self, connection, event): +        self.send_it() + +    def on_disconnect(self, connection, event): +        sys.exit(0) + +    def send_it(self): +        if self.msg: +            print "writing given argv privmsg",self.msg +            self.connection.privmsg(self.target, self.msg) +        else: +            print "writing stdin privmsg:" +            while 1: +                line = sys.stdin.readline() +                if not line: +                    break +                print line +                self.connection.privmsg(self.target, line) +        self.connection.quit("Using irclib.py") +def findGreatNick(prefix='shinken'): +    import random +    import re +    dic="/usr/share/dict/danish" +    found=False +    while not found: +      w = random.choice(list(open(dic))) +      found = re.match(r"^[a-zA-Z_-]+$",w) +    return  prefix +"|"+w.strip() + +def main(): +    if len(sys.argv) < 3: +        print "Usage: notify_irc <server[:port]> <target> [message]" +        print "\ntarget is a nickname or a channel." +        sys.exit(1) + +    s = sys.argv[1].split(":", 1) +    server = s[0] +    if len(s) == 2: +        try: +            port = int(s[1]) +        except ValueError: +            print "Error: Erroneous port." +            sys.exit(1) +    else: +        port = 6667 +    import random +    nickname = findGreatNick() +    print nickname +    target = sys.argv[2] +    msg = "" +    if len(sys.argv) == 4: +      msg = sys.argv[3] +    c = IRCCat(target,msg) +    try: +        print "trying to connect to ",server,port,nickname +        c.connect(server, port, nickname ) +    except irclib.ServerConnectionError, x: +        print x +        sys.exit(1) +    c.start() + +if __name__ == "__main__": +    main() | 
