class SshMonitorPlugin(Plugin, Thread): name = 'ssh monitoring plugin for elmot by Frolov Dmitry' keyword = 'sshmon' controlled = False def __init__(self): Plugin.__init__(self) Thread.__init__(self) self.api = Api() def follow(self, thefile): thefile.seek(0,2) while True: line = thefile.readline() if not line: time.sleep(0.1) continue if ('Failed password' in line): yield line.split(': ')[1].split('port')[0] def run(self): logfile = open('/var/log/auth.log') loglines = self.follow(logfile) for line in loglines: line = line.replace('invalid user ', '', 1) self.api.tweet(line)
def run(self): mgr = PluginManager() api = Api() for mes in api.listenMessages(): m = Message(mes.text,mes.sender) plugin = mgr.getPlugin(m.keyword) if plugin.action == 2: api.tweet(plugin.execute(m)) elif plugin.action == 1: api.sendDirectMessage(m.sender.id, plugin.execute(m)) elif plugin.action == 0: plugin.execute(m)