这个Python脚本是用来对实时文件的内容监控,比如 Error 或者 time out 字段都可以进行自定义;算是我的第一个真正的Python脚本,自己感觉还是比较臃肿,不过打算放到blog上记录一下(还是初学者,大神们勿喷哈),真心希望博友们能够再指点一下(现在记录每次的文件大小值是输出到了一个文件中,并且里面还嵌套了有shell命令,这些我认为都是可以优化掉的吧,只是现在我还不知道怎么做);告警是基于zabbix,自定义的模板是120s执行一次
#!/usr/local/bin/python3.5
###Destription: 实时读取log信息
###Author:      Danny Deng
###Datetime:    2016-11-17
import re,time,subprocess,os,linecache
###############定义log文件
file_name = "/var/log/mongodb/mongodb.log"
file_number = "/usr/local/zabbix_agent/number.txt"
j = int(0)
seek = int(0)
###############判断文件是否存在---判断number是否存在---判断number size 与 filesize
###############定义一个函数,遍历文件
def readline():
###############if判断 seek是否大于0,大于则赋值,否则初始为0while True:
###############定义文件,根据seek值进行每行读取,每次tell赋值给seekwith open(file_name,'r') as f:global seek#seek = seekf.seek(seek)data = f.readline()if  data:seek = f.tell()yield dataelse:
###############Python变量转换为shell变量global file_numberos.environ['seek'] = str(seek)os.environ['file_number'] = str(file_number)
###############记录上一次执行后的seek值,下次执行直接读取os.system('echo $seek > $file_number')os.system('chown zabbix.zabbix $file_number')return
###############定义函数,find特定字符串从每行数据中
def func_for():j = int(0)for i in readline():f_find = re.findall(r"error", i,flags=re.IGNORECASE)if "error" in f_find:j += 1
###############没有输出0,有值输出出现error匹配到的次数值try:print(j)except NameError:print(int("0"))
###############判断文件是否存在
if os.path.isfile(file_name):
###############判断存储seek的文件是否存在if os.path.isfile(file_number):
###############存在时,读取其seek值seek_number = int(linecache.getline(file_number, 1))
###############如果有值判断seek值与现在文件大小值,大于说明log文件已重新生成,重置seek值为0if os.path.getsize(file_name) >= seek_number and seek_number > 0:seek = seek_numberfunc_for()else:seek = int(0)func_for()
###############如果存储seek值的文件不存在,新建并出示seek值为0else:os.environ['file_number'] = str(file_number)os.system('echo 0 > $file_number')os.system('chown zabbix.zabbix $file_number')func_for()
###############文件不存在 报错
else:print("Error")quit()

  

转载于:https://www.cnblogs.com/anita-harbour/p/9297741.html

python实时处理log文件脚本相关推荐

  1. python实时处理_python实时处理log文件脚本

    #!/usr/local/bin/python3.5 ###Destription: 实时读取log信息 ###Author: Danny Deng ###Datetime: 2016-11-17 i ...

  2. python如何读取log文件_怎么解决Python读取log文件时报错

    怎么解决Python读取log文件时报错 发布时间:2020-05-23 14:15:56 来源:亿速云 阅读:157 作者:鸽子 问题描述: 写了一个读取log文件的Python脚本:# -*- c ...

  3. python读取log文件_python文件读写(一)-txt, log, json, csv, xml文件

    1.概述在平时自动化测试工作中,经常会用python对一些文件进行读写操作.其中使用最多的文件格式,就是txt,  log,  json,  csv,  xml,  zip, tar, gz,  ra ...

  4. python生成log文件

    log意即日志,通常是系统或者某些软件对已完成的某种处理的记录,以便将来做为参考,它并没有固定的格式,通常是文本文件,可以用记事本打开以查看内容,当然很可能是其它格式,直接打开就是乱码. log文件的 ...

  5. Python用log文件绘制损失、准确率曲线

    一.导入包 from matplotlib import rcParams import matplotlib.pyplot as plt import re 二.读取文件 ##显示中文 rcPara ...

  6. python解析log文件_python解析基于xml格式的日志文件

    大家中午好,由于过年一直还没回到状态,好久没分享一波小知识了,今天,继续给大家分享一波Python解析日志的小脚本. 首先,同样的先看看日志是个啥样. 都是xml格式的,是不是看着就头晕了??没事,我 ...

  7. 利用python 提取log 文件里的关键句子,并进行统计分析

    利用python开发了一个提取sim.log 中的各个关键步骤中的时间并进行统计的程序: #!/usr/bin/python2.6 import re,datetime file_name='/hom ...

  8. python读取log文件生成图形表_python提取log文件内容并画出图表

    之前在excel里面分析log数据,简直日了*了. 现在用python在处理日志数据. 主要涉及 matplotlib,open和循环的使用. 日志内容大致如下 2016-10-21 21:07:59 ...

  9. python读取log文件_python之文件的读写(文本文档,log文件)

    1 #文件打开方式,文件打开是有返回值的 2 #open函数 3 #file_object = open(file_name,access_mode='r') 4 #file_name 必填形参, a ...

最新文章

  1. vscode 格式化某一段代码_VSCode格式化代码功能失效的bug解决方法
  2. Ajax弹出漂亮可拖动的提示层(窗)效果
  3. 【IBM Tivoli Identity Manager 学习文档】3 系统部署
  4. 微博鸿蒙测试版,不久前华为宣布,将会在6月2日举... - @姬永锋 的微博精选 - 微博国际站...
  5. auxprop mysql_Postfix 反垃圾过滤
  6. 100年前没人信他,但他仅1项研究便远程摧毁万架飞机……
  7. python编程能力等级测试_56岁的潘石屹参加全国青少年编程能力等级测试,你还在问编程是什么?...
  8. Java 技术篇-java连接并操作数据库实例演示,执行查询、插入、更新和删除操作
  9. gradle 上传jar包_gradle 打包jar上传到nexus 同时上传源码jar
  10. anaconda在win下和在mac下的安装区别
  11. MFC TabCtrl用法
  12. sizeof与offsetof有关的结构体详解
  13. python 序列化压缩成字符串_Python 将json序列化后的字符串转换成字典(推荐)
  14. 了解.Net Remoting从基础开始
  15. 生物医学基础--讲不明白12导联算我输
  16. c#Code Contracts代码协定
  17. 浅谈堆栈问题-C++
  18. 关于Android直接连MySQL获取数据的真机测试的一些坑
  19. Mysql replace/insert into 插入修改数据
  20. 关于我写公众号的目的和原因

热门文章

  1. pythonxml格式化_使用Python生成XML的方法实例
  2. CentOS系统安装Java
  3. 白班夜班不是你想做就做,一切都得听安排
  4. 为什么感觉农村人在城里工作后,大部分都变了?
  5. 康熙通宝铜钱值多少钱?
  6. 微信号承载私域流量的9条心得
  7. 电商培训有用是有前置条件的
  8. 没人可以通过勤劳工作发财致富
  9. 销售的基本功(倾听、提问、聊天)
  10. 对创业者来说,创业心学就是一个不断提升自己