python实时处理_python实时处理log文件脚本
#!/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,大于则赋值,否则初始为0
while True:
###############定义文件,根据seek值进行每行读取,每次tell赋值给seek
with open(file_name,'r') as f:
global seek
#seek = seek
f.seek(seek)
data = f.readline()
if data:
seek = f.tell()
yield data
else:
###############Python变量转换为shell变量
global file_number
os.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值为0
if os.path.getsize(file_name) >= seek_number and seek_number > 0:
seek = seek_number
func_for()
else:
seek = int(0)
func_for()
###############如果存储seek值的文件不存在,新建并出示seek值为0
else:
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()
python实时处理_python实时处理log文件脚本相关推荐
- python实时处理log文件脚本
这个Python脚本是用来对实时文件的内容监控,比如 Error 或者 time out 字段都可以进行自定义:算是我的第一个真正的Python脚本,自己感觉还是比较臃肿,不过打算放到blog上记录一 ...
- python遍历文件_python遍历目录文件脚本的示例
例子 自己写的一个Python遍历文件脚本,对查到的文件进行特定的处理.没啥技术含量,但是也记录一下吧. 代码如下 复制代码 #!/usr/bin/python # -*- coding: utf-8 ...
- 利用python读取tomcat中log文件提取出错误日志生成新的文件
人生苦短,我用python 废话不多说,直接上代码! #!/usr/bin/env python # coding=utf-8 import redef find_error_log(log_name ...
- python读取.txt或.log文件
# -*- coding:gb2312 -*-import json#读取txt文件内容,与log文件同def read_txt(): filename = 'XXX.txt' # txt文件和当前脚 ...
- python调用git生成log文件_python解析git log后生成页面显示git更新日志信息
使用git log可以查到git上项目的更新日志. 如下两个git项目,我想把git的日志信息解析成一个便于在浏览器上查看的页面. https://github.com/gityf/lua https ...
- python读取log文件生成图形表_python提取log文件内容并画出图表
之前在excel里面分析log数据,简直日了*了. 现在用python在处理日志数据. 主要涉及 matplotlib,open和循环的使用. 日志内容大致如下 2016-10-21 21:07:59 ...
- excel文件成绩处理python代码_Python处理Excel文件实例代码
因为工作需求,需要审核一部分query内容是否有效,query储存在Excel中,文本内容为页面的Title,而页面的URL以HyperLink的格式关联到每个Cell. 于是本能的想到用Python ...
- python 加锁_python之给文件加锁(fcntl模块)
对该文件加密:fcntl.flock(f,fcntl.LOCK_EX) 这样就对文件test加锁了,如果有其他进程对test文件加锁,则不能成功,会被阻塞,但不会退出程序. 解锁:fcntl.floc ...
- python公式_Python读取excel文件中带公式的值的实现
在进行excel文件读取的时候,我自己设置了部分直接从公式获取单元格的值 但是用之前的读取方法进行读取的时候,返回值为空 import os import xlrd from xlutils.copy ...
最新文章
- mysql安装教程博音网_RTSP视频平台EasyNVR使用mysql数据源启动报错unknow drivermysql优化...
- 我是一个机箱 《转载》
- 解决Spring boot中读取属性配置文件出现中文乱码的问题
- html左侧td字体居右,如何在td中控制字体右对齐 且加粗_html/css_WEB-ITnose
- SAP Spartacus develop branch 的服务器端渲染启动方式
- Neo4j介绍与使用
- rpm包安装失败的解决办法
- 【MATLAB】基本绘图 ( 绘图基本步骤 | plot 函数 | 多曲线绘制 | hold on / off )
- adapter java_Java 实现适配器(Adapter)模式
- 万特电能表接线仿真系统 软件_电工技能——分享一款超实用的电工仿真教学接线Flash动画软件...
- HTML动画能在手机播放吗,如何使动画在手机中屏幕适配
- Oracle进阶(六)包(Package)和包体
- 大冬与小冉的故事 !!!-----阿冬专栏
- Matlab中imag函数用法
- 《PCL从入门到精通学习》第六章点云滤波
- 推荐一个好用的OKR工具
- 【C++】Clang-Format:代码自动格式化(看这一篇就够了)
- 纯小白初识函数—主函数调用子函数:
- 数据结构栈之中缀表达式求值(实现计算器综合计算)
- 爱思服务器显示磁盘空间不足,苹果磁盘空间不足怎么处理?