python自动化工具日志查询分析脚本代码实现

受控节点slave.py

代码如下:

import socketimport reclass log(object): file_list=[‘access.log’,’c:\\access.log’] master_ip=’192.168.0.103′ def __init__(self): s=socket.socket(socket.af_inet,socket.sock_stream) s.bind((”,3333)) s.listen(1) while true: conn,addr=s.accept() print addr[0] if addr[0]==self.master_ip: reg=conn.recv(1024) result=self.all_log(reg) conn.sendall(result) conn.close()

def all_log(self,reg): logs=” for f in self.file_list: logs+=’\n’+self.log_match(f,reg) return logs

def log_match(self,f,reg): log_result=’————————‘+f+’————————‘+’\n’ fo=open(f,’r’) line=fo.readline() rp=re.compile(reg) while line!=”: log_match=rp.match(line) if log_match: log_result+=’\n’+log_match.group() line=fo.readline() return log_result

if __name__==’__main__’: ds=log()

主控节点master.py

代码如下:

import socketclass slvcluster(object): ip_list=[‘127.0.0.1’] def __init__(self,reg): for ip in self.ip_list: self.single_slv(ip,reg) def single_slv(self,slv_ip,reg): s=socket.socket(socket.af_inet,socket.sock_stream) s.connect((slv_ip,3333)) s.sendall(reg) print ‘———————–‘+slv_ip+’————————–‘ print s.recv(102400) s.close()if __name__==’__main__’: reg=raw_input(‘input the regular expression:’) print ‘———–regular expression: ‘+reg+’—————–‘ sc=slvcluster(reg)