atlas 日志分析脚本
2024-09-08 14:44:08
#!/usr/bin/env python
# encoding: utf-8 #@author: 东哥加油!
#@file: log_analyze.py
#@time: 2018/8/23 17:15 import pandas as pd
import re
import time
import datetime def tj_log_to_excel(from_file_name,to_file_name):
file=open(from_file_name,'r',encoding='UTF-8')
columns = ('表名','SELECT 统计','UPDATE 统计','INSERT 统计','DELETE 统计')
results = []
results.append(columns)
dict1 = {}
print(time.strftime("%H:%M:%S"))
for (num,line) in enumerate(file):
line = line.lower()
l_row = []
if(re.search(r'delete from ',line)):
str = re.findall(r"delete from ([a-zA-Z0-9_\.]*)", line)
str = str[0]
if(dict1.get(str) == None):
l_row = [0,0,0,1]
dict1[str] = l_row
else:
v = dict1.get(str)
v[3] = v[3] + 1
elif (re.search(r' from ',line)):
str = re.findall(r" from ([a-zA-Z0-9_\.]*)", line)
str = str[0]
if str != '':
if (dict1.get(str) == None):
l_row = [1, 0, 0, 0]
dict1[str] = l_row
else:
v = dict1.get(str)
v[0] = v[0] + 1
elif (re.search(r'"update ', line)):
str = re.findall(r"update ([a-zA-Z0-9_\.]*)", line)
str = str[0]
if str != '':
if (dict1.get(str) == None):
l_row = [0, 1, 0, 0]
dict1[str] = l_row
else:
v = dict1.get(str)
v[1] = v[1] + 1
elif (re.search(r'"insert into ', line)):
str = re.findall(r"insert into ([a-zA-Z0-9_\.]*)", line)
str = str[0]
if str != '':
if (dict1.get(str) == None):
l_row = [0, 0, 1, 0]
dict1[str] = l_row
else:
v = dict1.get(str)
v[2] = v[2] + 1 for key in dict1:
t_row = []
t_row.append(key)
t_row.append(dict1[key][0])
t_row.append(dict1[key][1])
t_row.append(dict1[key][2])
t_row.append(dict1[key][3])
results.append(t_row) df = pd.DataFrame(results)
df.to_excel(to_file_name)
print(time.strftime("%H:%M:%S")) if __name__ == '__main__':
now_time = datetime.datetime.now()
step_time = datetime.timedelta(days=1)
yes_time = now_time - step_time
pdate = yes_time.strftime('%Y%m%d')
from_file_name = '/usr/local/mysql-proxy/log/sql_balance.log_'+pdate
print(from_file_name)
to_file_name= '/data/shell/sk/sql_balance_'+pdate+'.xls'
tj_log_to_excel(from_file_name,to_file_name)
最新文章
- oracle add_months函数
- C++异常处理的问题
- 投票系统 &; 简易js刷票脚本
- HDU 4334 Trouble
- geeksforgeeks@ Largest Number formed from an Array
- MiZ702学习笔记13——ZYNQ通过AXI-Lite与PL交互
- WPF中的Style
- Android开发之AIDL的使用一--跨应用启动Service
- 用JAVA给JSON进行排版
- Linux内核源代码解析之——我与神童聊Linux内核
- 手机自动化测试:Appium源码分析之跟踪代码分析六
- ●POJ 2828 Buy Tickets
- 39. Combination Sum(medium, backtrack 的经典应用, 重要)
- How to Simulate the Price Order or Price Line Function using API QP_PREQ_PUB.PRICE_REQUEST Includes
- jenkins自动化工具使用教程(转)
- 设置光标聚焦输入框(EditText)并弹出软键盘(在适配器中设置)
- 记自己利用hexo和github搭建个人博客的过程
- 实体类注解错误:Could not determine type for: java.util.List
- LIBS入门
- 前端框架VUE----node.js的简单介绍