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

受控节点slave.py

代码如下:

import socket
import re
class 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 socket
class 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)

(0)

相关推荐

  • python实时分析日志的一个小脚本分享

    前言 大家都知道Web运维总要关注相关域名的实时2xx/s.4xx/s.5xx/s.响应时间.带宽等这些指标,之前的日志是五分钟一分割,简单的用awk就可以了,现在由于要推送日志到ELK,继续之前五分钟一分割会有问题,就改为一天分割一次.改成一天一分割后,显然再继续用Shell就不合适了,于是就用Python写了下. 方法如下: 脚本主要运用了文件的seek和tell函数,原理如下: 1.加入crontab,每5分钟执行一次 2.只分析从上次读取日志文件的结束位置到这次读取文件时的末尾位置之间的

  • python正则分析nginx的访问日志

    前言 本文的脚本是分析nginx的访问日志, 主要为了检查站点uri的访问次数的,检查的结果会提供给研发人员做参考,因为谈到分析嘛,那肯定要用到正则表达式了,所以请没有接触过正则的小伙伴自行补脑,因为涉及正则的内容,实在没法展开写,正则的内容太过庞大,根本不是一篇两篇能写清楚的. 开始前,我们先看看要分析的日志结构: 127.0.0.1 - - [19/Jun/2012:09:16:22 +0100] "GET /GO.jpg HTTP/1.1" 499 0 "http://

  • 利用python分析access日志的方法

    前言 WAF上线之后,处理最多的是误报消除. 产生误报有多种原因,比如web应用源码编写时允许客户端提交过多的cookie:比如单个参数提交的数值太大. 把误报降低到了可接受的范围后,还要关注漏报.WAF不是神,任何WAF都可能被绕过.所以还需要定位漏过的攻击,明确漏报的原因,才能update WAF的策略. 要定位漏报,就必须分析Web应用的访问日志了.一个站点,每天产生的access日志大概接近1GB,显然靠肉眼看是不现实的.这就需要用python帮助自动分析. 实现思路 拿我司某Web系统

  • Python实现监控程序执行时间并将其写入日志的方法

    本文实例讲述了Python实现监控程序执行时间并将其写入日志的方法.分享给大家供大家参考.具体实现方法如下: # /usr/bin/python # -*- coding:utf-8 -*- from time import time def logged(when): def log(f,*args,**kargs): print ''' called: functions:%s args: %r kargs: %r ''' % (f,args,kargs) def pre_logged(f)

  • python动态监控日志内容的示例

    日志文件一般是按天产生,则通过在程序中判断文件的产生日期与当前时间,更换监控的日志文件程序只是简单的示例一下,监控test1.log 10秒,转向监控test2.log 程序监控使用是linux的命令tail -f来动态监控新追加的日志 复制代码 代码如下: #!/usr/bin/python# encoding=utf-8# Filename: monitorLog.pyimport osimport signalimport subprocessimport time logFile1 =

  • 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))      

  • 微软开源最强Python自动化神器Playwright(不用写一行代码)

    相信玩过爬虫的朋友都知道selenium,一个自动化测试的神器工具.写个Python自动化脚本解放双手基本上是常规的操作了,爬虫爬不了的,就用自动化测试凑一凑. 虽然selenium有完备的文档,但也需要一定的学习成本,对于一个纯小白来讲还是有些门槛的. 最近,微软开源了一个项目叫「playwright-python」,简直碉堡了!这个项目是针对Python语言的纯自动化工具,连代码都不用写,就能实现自动化功能. 可能你会觉得有点不可思议,但它就是这么厉害.下面我们一起看下这个神器. 1. Pl

  • Python常用工具类之adbtool示例代码

    1.adb常用命令 关闭adb服务:adb kill-server 启动adb服务  adb start-server 查询当前运行的所有设备  adb devices 可能在adb中存在多个虚拟设备运行 可以指定虚拟设备运行  -s 虚拟设备名称 重启设备 adb reboot  --指定虚拟设备   adb -s 设备名称 reboot 查看日志  adb logcat  清除日志 adb logcat -c 进入linux shell下  adb shell 其中常用的linux命令  c

  • python自动化测试之DDT数据驱动的实现代码

    时隔已久,再次冒烟,自动化测试工作仍在继续,自动化测试中的数据驱动技术尤为重要,不然咋去实现数据分离呢,对吧,这里就简单介绍下与传统unittest自动化测试框架匹配的DDT数据驱动技术. 话不多说,先撸一波源码,其实整体代码并不多 # -*- coding: utf-8 -*- # This file is a part of DDT (https://github.com/txels/ddt) # Copyright 2012-2015 Carles Barrobés and DDT con

  • python自动化工具之pywinauto实例详解

    本文实例为大家分享了python自动化工具pywinauto,供大家参考,具体内容如下 一.win环境应用自动化 1.浏览器中下载 2.在cmd下启动:python get-pip.py 3.在cmd中输入python -m pip --version查看安装pip的版本. 4.模块安装:pip3 install pywinauto 5.程序中加载模块: import time from pywinautoimport application 二,实例 #encoding=utf-8 #auth

  • Mysql sql慢查询监控脚本代码实例

    1.修改my.cnf #整体的效果,全局开启表和日志文件都写,但是对于general_log只写表,对于slow_query_log,表和日志文件都记录. general_log=1#开启mysql执行sql的日志 slow_query_log=1#开启mysql慢sql的日志 #设置之后会影响general_log和slow_query_log, log_output=table,File#日志输出会写表,也会写日志文件,为了便于程序去统计,所以最好写表 #这里没配置general_log_f

  • python将人民币转换大写的脚本代码

    复制代码 代码如下: def Num2MoneyFormat( change_number ):    """    .转换数字为大写货币格式( format_word.__len__() - 3 + 2位小数 )    change_number 支持 float, int, long, string    """    format_word = ["分", "角", "元",   

  • python备份文件以及mysql数据库的脚本代码

    复制代码 代码如下: #!/usr/local/python import os import time import string source=['/var/www/html/xxx1/','/var/www/html/xxx2/'] target_dir='/backup/' target=target_dir+time.strftime('%Y%m%d') zip_comm='zip -r %s %s'%(target," ".join(source)) target_data

  • 使用python检测手机QQ在线状态的脚本代码

    复制代码 代码如下: import time,datetime    import urllib2   def chk_qq(qqnum):    chkurl = 'http://wpa.qq.com/pa?p=1:'+`qqnum`+':1'    a = urllib2.urlopen(chkurl)        length=a.headers.get("content-length")        a.close()        print datetime.datet

  • Linux下Oracle归档日志自动清理脚本代码(sh)

    复制代码 代码如下: #!/bin/sh export BACK_DATE=`date +%Y%m%d` export BACKUP_PATH=/home/oracle/dbbak echo `mkdir -p ${BACKUP_PATH}/archivelog/${BACK_DATE}` rman msglog=$BACKUP_PATH/archivelog/${BACK_DATE}/arch_0_$BACK_DATE.log << EOF connect target /; delete

随机推荐