Pastebin
Paste #2506: watcher.py
< previous paste - next paste>
Pasted by tdn@malbec
[1;31m--- /usr/share/pyshared/spye/plugins/sikkerhedorg/log/watcher.py 2012-05-14 23:01:07.000000000 +0200[0;0m
[1;34m+++ /home/tdn/wc/software/spye-sikkerhedorg/spye-sikkerhedorg/plugins/sikkerhedorg/log/watcher.py 2012-08-20 22:14:50.211761437 +0200[0;0m
[1;35m@@ -26,8 +26,16 @@[0;0m
[0;0m patterns = self.config_get("patterns", require = True)[0;0m
[0;0m return [(x, re.compile(x)) for x in patterns][0;0m
[0;0m [0;0m
[1;34m+ def exclude_patterns_load(self):[0;0m
[1;34m+ patterns = self.config_get("exclude_patterns", require = False)[0;0m
[1;34m+ if patterns:[0;0m
[1;34m+ return [(x, re.compile(x)) for x in patterns][0;0m
[1;34m+ else:[0;0m
[1;34m+ return None[0;0m
[1;34m+[0;0m
[0;0m def meta_check(self, filename='-'):[0;0m
[1;31m- patterns = self.patterns_load()[0;0m
[1;34m+ patterns = self.patterns_load()[0;0m
[1;34m+ exclude_patterns = self.exclude_patterns_load()[0;0m
[0;0m [0;0m
[0;0m if filename == '-':[0;0m
[0;0m fh = sys.stdin[0;0m
[1;35m@@ -40,11 +48,20 @@[0;0m
[0;0m line = line.strip()[0;0m
[0;0m [0;0m
[0;0m for p, re in patterns:[0;0m
[1;31m- if re.search(line):[0;0m
[1;34m+ if re.search(line) and not self.exclude_match(line, exclude_patterns):[0;0m
[0;0m self.print_hint("Line [%s] matched pattern [%s]", line, p)[0;0m
[0;0m else:[0;0m
[0;0m self.print_debug("Line [%s] does not match pattern [%s]", line, p)[0;0m
[0;0m [0;0m
[1;34m+ def exclude_match(self, line, exclude_patterns):[0;0m
[1;34m+ """Returns True if line matches any pattern in exclude_patterns[0;0m
[1;34m+ Returns False otherwise"""[0;0m
[1;34m+ if exclude_patterns:[0;0m
[1;34m+ for ep, ere in exclude_patterns:[0;0m
[1;34m+ if ere.search(line):[0;0m
[1;34m+ return True[0;0m
[1;34m+ return False[0;0m
[1;34m+[0;0m
[0;0m def meta_tail(self):[0;0m
[0;0m patterns = self.patterns_load()[0;0m
[0;0m mailfrom = self.config_get_string("mailfrom", require = True)[0;0m
[1;35m@@ -57,7 +74,7 @@[0;0m
[0;0m line = line.strip()[0;0m
[0;0m [0;0m
[0;0m for p, re in patterns:[0;0m
[1;31m- if re.search(line):[0;0m
[1;34m+ if re.search(line) and not self.exclude_match(line, exclude_patterns):[0;0m
[0;0m self.print_hint("Line [%s] matched pattern [%s]", line, p)[0;0m
[0;0m [0;0m
[0;0m subject = "[%s] logwatch alert [%s]" % (hostname_fqdn, p)[0;0m
[1;35m@@ -66,3 +83,4 @@[0;0m
[0;0m mail.set_envelope(From = mailfrom, To = mailto)[0;0m
[0;0m mail.set_headers (From = mailfrom, To = mailto, Subject = subject)[0;0m
[0;0m mail.send(template % (line, p))[0;0m
[1;34m+[0;0m
New Paste
Go to most recent paste.