atlas 日志分析脚本
#!/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)
atlas 日志分析脚本的更多相关文章
- linux实用的日志分析脚本
日志分析 随意的tail一个access_log文件,下面是一条经典的访问记录 218.19.140.242 – - [10/Dec/2010:09:31:17 +0800] “GET /query/ ...
- linux常用的日志分析脚本
linux实用的日志分析脚本 日志分析 随意的tail一个access_log文件,下面是一条经典的访问记录 /Dec/::: +] “GET /query/trendxml/district/tod ...
- linux系统web日志分析脚本
linux系统web日志分析这方面工具比较多,比如logwatch或awstats等使用perl语言开发,功能都非常强大.但这些软件都需要进行一些配置,很多朋友往往在技术方面没有投入太多力量,即便参照 ...
- MySQL 数据库慢查询日志分析脚本
这个脚本是基于pt-query-digest做的日志分析脚本,变成可视化的格式. 目录结构是 ./mysql_data/log./mysql_data/log/tmp./slow_query # co ...
- Nginx日志分析脚本
目录 一.简介 二.脚本 一.简介 运维工作是一个比较复杂的工作,有时候面对上万条的日志,如何作分析?难道一条条的分析? 这估计看两眼就要打哈欠了吧?聪明的人会选择脚本,这就是为什么现在提倡自动化运维 ...
- 我的日志分析之道:简单的Web日志分析脚本
前言 长话短说,事情的起因是这样的,由于工作原因需要分析网站日志,服务器是windows,iis日志,在网上找了找,github找了找,居然没找到,看来只有自己动手丰衣足食. 那么分析方法我大致可分为 ...
- 简单的Web日志分析脚本
前言 长话短说,事情的起因是这样的,由于工作原因需要分析网站日志,服务器是windows,iis日志,在网上找了找,github找了找,居然没找到,看来只有自己动手丰衣足食. 那么分析方法我大致可分为 ...
- Nginx日志配置及日志分析脚本案例
https://blog.csdn.net/bbwangj/article/details/82186162 nginx的log日志分为access log 和 error log 其中access ...
- 短信发送接口被恶意访问的网络攻击事件(三)定位恶意IP的日志分析脚本
前言 承接前文<短信发送接口被恶意访问的网络攻击事件(二)肉搏战-阻止恶意请求>,文中有讲到一个定位非法IP的shell脚本,现在就来公布一下吧,并没有什么技术难度,只是当时花了些时间去写 ...
随机推荐
- hard(2018.10.18)
题意:给你一棵\(n\)个节点的树,\(q\)个询问,每次询问读入\(u,v,k,op\),需要满足树上有\(k\)对点的简单路径交都等于\(u,v\)之间的简单路径,\(op=1\)表示\(k\)对 ...
- Codeforces 1119E(贪心)
题目传送 贪心方法 按边从小到大扫,先凑3个,没凑足的记录一下数量,后面大的优先跟这些凑,俩带走一个,多余的再凑3个,再--就这样走到最后即可. const int maxn = 3e5 + 5; i ...
- centOS 部署服务器(三)
今天一个新的项目终于能够重新安装mysql了,分享下步骤: 1.下载地址:http://dev.mysql.com/downloads/mysql/ (选择Linux - Generic版本的Lin ...
- HTML实例之简单的网页布局
需求: <html> <head> <title>简单的表格网页布局</title> <meta charset="UTF-8" ...
- Windows忘记mysql的密码
1.查看mysql的安装路径 show variables like "%char%"; 路径:C:\Program Files\MySQL\MySQL Server 5.7\ 2 ...
- Notepad++ 安装 Zen Coding / Emmet 插件
Zen Coding 插件 ============== 下载: Zen.Coding-Notepad++.v0.7.zip ==Installation== 1. Copy contents of ...
- JavaScript 30 - 3 学习笔记
今天学习的是JavaScript 30-3 ---css Variables 实现的效果如下图所示. 废话不多,我们直接来看代码. html: <h1>大家好,这个一个<span c ...
- NBUT 1118 Marisa's Affair (排序统计,水)
题意: 每行给出一个人名和一个int值,人名可重复出现.要求对同一个人名统计int值,最大的先输出,若相同,则按照人名出现次数,若再相同,则按照人名字典序. 思路: 输入完全部进行排序,写个比较函数传 ...
- codevs 1008 选数
时间限制: 1 s 空间限制: 128000 KB 题目等级 : 黄金 Gold 题目描述 Description 已知 n 个整数 x1,x2,…,xn,以及一个整数 k(k<n).从 n ...
- Win7下vc++6.0打开项目出现问题的解决方案
Win7下vc++6.0打开项目出现Microsoft(R) Developer Studio以及Unable to register this add-in because its DLLRegis ...