python 实现提取log文件中的关键句子,并进行统计分析


Posted in Python onDecember 24, 2019

利用python开发了一个提取sim.log 中的各个关键步骤中的时间并进行统计的程序:

#!/usr/bin/python2.6
import re,datetime
file_name='/home/alzhong/logs/qtat1/R2860.01.13/sim-applycommitrollback-bld1.log'
file=open(file_name,'r')
acnum=[];time_res=[];lnum=0
def trans_time(time):
  t1=datetime.datetime.strptime(time,'%y/%m/%d %H:%M:%S')
  return t1
for (num,line) in enumerate(file):

  if(re.search(r'^(.*)BEGINNING SIM PROCEDURE(.*)$',line)):
    m=re.search(r'^(.*)BEGINNING SIM PROCEDURE(.*)$',line)
    print 'Step %d:'%(lnum), m.group(0);lnum+=1
    acnum.append(trans_time(line[0:17]))
  elif(re.search(r'^(.*)CP_W(.*)$', line)):
    m=re.search(r'^(.*)CP_W(.*)$', line)
    print 'Step %d:'%(lnum), m.group(0);lnum+=1
    acnum.append(trans_time(line[0:17]))
  elif(re.search(r"^(.*)VERIFY_S(.*)$", line)):
    m=re.search(r"^(.*)VERIFY_S(.*)$", line)
    print 'Step %d:'%(lnum), m.group(0);lnum+=1
    acnum.append(trans_time(line[0:17]))
  elif(re.search(r"^(.*)--action commit(.*)$",line)):
    m=re.search(r"^(.*)--action commit(.*)$",line)
    print 'Step %d:'%(lnum), m.group(0);lnum+=1
    acnum.append(trans_time(line[0:17]))
  elif(re.search(r"^(.*)COMPLETED SIM PROCEDURE(.*)$",line)):
    m=re.search(r"^(.*)COMPLETED SIM PROCEDURE(.*)$",line)
    print 'Step %d:'%(lnum), m.group(0);lnum+=1
    acnum.append(trans_time(line[0:17]))
  elif(re.search(r"^(.*)RESUMING SIM PROCEDURE(.*)$",line)):
    m=re.search(r"^(.*)RESUMING SIM PROCEDURE(.*)$",line)
    print 'Step %d:'%(lnum), m.group(0);lnum+=1
    acnum.append(trans_time(line[0:17]))

file.close()
if(re.search(r"^(.*)backout(.*)$",file_name)):
  time_res.append((acnum[2]-acnum[0]).seconds/60)
  time_res.append((acnum[4]-acnum[3]).seconds/60)
  time_res.append((acnum[6]-acnum[5]).seconds/60)
  time_res.append(((acnum[8]-acnum[7])+(acnum[10]-acnum[9])+(acnum[13]-acnum[11])).seconds/60)
  print "\n3). sim --proc update --action apply to \"CP_WARNING\" %s mins" %(time_res[0])
  print "4). sim --proc update --action resume to \"VERIFY_SOFTWARE\" %s mins"%(time_res[1])
  print "5). sim --proc update --action resume to \"COMMIT\" %s mins"%(time_res[2])
  print "8). Backout from RXX to RXX %s mins"%(time_res[3])
elif(re.search(r"^(.*)rollback(.*)$",file_name)):
  time_res.append((acnum[2]-acnum[0]).seconds/60)
  time_res.append((acnum[4]-acnum[3]).seconds/60)
  time_res.append((acnum[6]-acnum[5]).seconds/60)
  time_res.append((acnum[8]-acnum[7]).seconds/60)
  time_res.append(((acnum[10]-acnum[9])+(acnum[12]-acnum[11])+(acnum[15]-acnum[13])).seconds/60)
  print "\n3). sim --proc update --action apply to \"CP_WARNING\" %s mins" %(time_res[0])
  print "4). sim --proc update --action resume to \"VERIFY_SOFTWARE\" %s mins"%(time_res[1])
  print "5). sim --proc update --action resume to \"COMMIT\" %s mins"%(time_res[2])
  print "6). sim --proc update --action commit to end of Patch %s mins"%(time_res[3])
  print "8). Rollback from RXX to RXX %s mins" %(time_res[4])
if __name__ == '__main__':
  pass
:q!
<lsslogin1-alzhong>/home/alzhong/tools: ls
simt
<lsslogin1-alzhong>/home/alzhong/tools: ./simt
Step 0: 14/06/16 12:31:32 BEGINNING SIM PROCEDURE 'update apply' type=hot ...
Step 1: 14/06/16 13:18:42 RESUMING SIM PROCEDURE 'update apply' type=hot ...
Step 2: 14/06/16 13:30:43 SIM0317 PAUSE_REQUEST: (PROCEDURE) [PAUSE(CP_WARNING): Use 'sim --proc update --action resume' to continue...] (update:1435)
Step 3: 14/06/16 13:43:40 RESUMING SIM PROCEDURE 'update apply' type=hot ...
Step 4: 14/06/16 13:47:49 SIM0343 PAUSE_REQUEST: (PROCEDURE) [PAUSE(VERIFY_SOFTWARE): Use 'sim --proc update --action resume' to continue...] (update:1634)
Step 5: 14/06/16 13:54:26 RESUMING SIM PROCEDURE 'update apply' type=hot ...
Step 6: 14/06/16 14:25:41 SIM0496 PAUSE_REQUEST: (COMMIT) [PAUSE(COMMIT): Use 'sim --proc update --action commit' to continue...] (update:2579)
Step 7: 14/06/16 14:41:51 RESUMING SIM PROCEDURE 'update commit' type=hot ...
Step 8: 14/06/16 15:18:34 COMPLETED SIM PROCEDURE 'update commit' type=hot
Step 9: 14/06/16 15:31:35 BEGINNING SIM PROCEDURE 'update rollback' type=hot level=9999 ...
Step 10: 14/06/16 15:47:34 SIM0091 PAUSE_REQUEST: (PROCEDURE) [PAUSE(CP_WARNING): Use 'sim --proc update --action resume' to continue...] (update_rlbk:421)
Step 11: 14/06/16 15:53:30 RESUMING SIM PROCEDURE 'update rollback' type=hot level=9999 ...
Step 12: 14/06/16 16:02:03 SIM0135 PAUSE_REQUEST: (PROCEDURE) [PAUSE(VERIFY_SOFTWARE): Use 'sim --proc update --action resume' to continue...] (update_rlbk:564)
Step 13: 14/06/16 16:04:22 RESUMING SIM PROCEDURE 'update rollback' type=hot level=9999 ...
Step 14: 14/06/16 16:09:42 RESUMING SIM PROCEDURE 'update rollback' type=hot level=9999 ...
Step 15: 14/06/16 16:26:56 COMPLETED SIM PROCEDURE 'update rollback' type=hot level=9999

3). sim --proc update --action apply to "CP_WARNING" 59 mins
4). sim --proc update --action resume to "VERIFY_SOFTWARE" 4 mins
5). sim --proc update --action resume to "COMMIT" 31 mins
6). sim --proc update --action commit to end of Patch 36 mins
8). Rollback from RXX to RXX 47 mins

以上这篇python 实现提取log文件中的关键句子,并进行统计分析就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python实现的希尔排序算法实例
Jul 01 Python
Python对数据库操作
Mar 28 Python
解决python os.mkdir创建目录失败的问题
Oct 16 Python
Django框架中间件(Middleware)用法实例分析
May 24 Python
使用 Python 快速实现 HTTP 和 FTP 服务器的方法
Jul 22 Python
Python中 CSV格式清洗与转换的实例代码
Aug 29 Python
浅谈python之自动化运维(Paramiko)
Jan 31 Python
python如何编写win程序
Jun 08 Python
Python爬虫爬取有道实现翻译功能
Nov 27 Python
Django实现简单的分页功能
Feb 22 Python
python编写函数注意事项总结
Mar 29 Python
Python matplotlib可视化之绘制韦恩图
Feb 24 Python
Python3.7+tkinter实现查询界面功能
Dec 24 #Python
python 读取更新中的log 或其它文本方式
Dec 24 #Python
如何基于python操作excel并获取内容
Dec 24 #Python
python实现tail实时查看服务器日志示例
Dec 24 #Python
Python 模拟动态产生字母验证码图片功能
Dec 24 #Python
python中return的返回和执行实例
Dec 24 #Python
Python文件操作函数用法实例详解
Dec 24 #Python
You might like
第1次亲密接触PHP5(2)
2006/10/09 PHP
十天学会php(1)
2006/10/09 PHP
php自定义的格式化时间示例代码
2013/12/05 PHP
给大家分享几个常用的PHP函数
2017/01/15 PHP
thinkPHP5.0框架简单配置作用域的方法
2017/03/17 PHP
对laravel的csrf 防御机制详解,及form中csrf_token()的存在介绍
2019/10/24 PHP
javascript 导出数据到Excel(处理table中的元素)
2009/12/18 Javascript
整理8个很棒的 jQuery 倒计时插件和教程
2011/12/12 Javascript
jQuery控制输入框只能输入数值的小例子
2013/03/20 Javascript
javascript 用函数语句和表达式定义函数的区别详解
2014/01/06 Javascript
javascript实现了照片拖拽点击置顶的照片墙代码
2015/04/03 Javascript
jQuery实现Tab选项卡切换效果简单演示
2015/11/23 Javascript
Bootstrap栅格系统简单实现代码
2017/03/06 Javascript
Vue列表页渲染优化详解
2017/07/24 Javascript
移动设备手势事件库Touch.js使用详解
2017/08/18 Javascript
javascript 面向对象实战思想分享
2017/09/07 Javascript
webpack vue项目开发环境局域网访问方法
2018/03/20 Javascript
微信小程序wx.uploadfile 本地文件转base64的实现代码
2018/06/28 Javascript
Vue中的$set的使用实例代码
2018/10/08 Javascript
vue实现codemirror代码编辑器中的SQL代码格式化功能
2019/08/27 Javascript
viewer.js一个强大的基于jQuery的图像查看插件(支持旋转、缩放)
2020/04/01 jQuery
Vue——解决报错 Computed property &quot;****&quot; was assigned to but it has no setter.
2020/12/19 Vue.js
[02:43]DOTA2英雄基础教程 半人马战行者
2014/01/13 DOTA
[03:02]辉夜杯主赛事第二日 每日之星
2015/12/27 DOTA
[51:05]DOTA2上海特级锦标赛主赛事日 - 5 败者组决赛Liquid VS EG第一局
2016/03/06 DOTA
[57:09]DOTA2-DPC中国联赛 正赛 Phoenix vs Dynasty BO3 第一场 1月26日
2021/03/11 DOTA
python实现读取命令行参数的方法
2015/05/22 Python
python读取和保存视频文件
2018/04/16 Python
Python Tkinter 简单登录界面的实现
2019/06/14 Python
如何基于Python按行合并两个txt
2020/11/03 Python
Python .py生成.pyd文件并打包.exe 的注意事项说明
2021/03/04 Python
无传销社区工作方案
2014/05/13 职场文书
消防安全承诺书
2014/05/22 职场文书
四风专项整治工作情况汇报
2014/10/28 职场文书
如何写贫困证明申请书
2014/10/29 职场文书
学校法制宣传日活动总结
2014/11/01 职场文书