#!/bin/env python#coding:utf-8# Filemname:# Description: 分析由运维组写出来的脚本将MySQLDB慢查询日志转换成容易分析的、一行一条case的记录,分析过去一个小时的慢查询记录,讲大于10s的记录发出来。# Author: bigdata-ops@le.comimport os
import sys
import re
defdingweihang(line):
flag=0
result=re.findall('# Time:',line)
if len(result)==1:
flag=1return flag
result=re.findall('# User@Host',line)
if len(result)==1:
flag=2return flag
result=re.findall('# Thread_id',line)
if len(result)==1:
flag=3return flag
result=re.findall('# Query_time',line)
if len(result)==1:
flag=4return flag
return100defqueryTimeOver(line):
result=re.findall("Query_time: ([\d|\.]+)",line)
if len(result)==1:
return result[0]
else:
return0;
result=[]
for line in open("linshi.txt"):
if len(line) < 10:
continue
queryTime=queryTimeOver(line)
if float(queryTime) > 10:
result.append(line)
# 匹配Query_time: 0.299677for content in result:
print content
手动执行
cd /usr/local/scripts && /bin/bash check.mysql.sh /data1/bd_data_market_mysql/logs/bd_data_market.slow 数据集市