今天处理一个case: 数据库异常,连接数突增。
想着分析一下慢日志,可是一看慢日志都好几G了,而且是短日志格式,找到那个时间点相对比较难。于是写了一个脚本从慢日志按时间提取点日志。脚本:
https://github.com/wubx/mysql-binlog-statistic/blob/master/bin/cutlogbytime
使用方法:
复制代码 代码如下:
cutlogbytime
#用于从慢日志用截取一个时间段的日志方便分析
./cutlogbytime /path/slowlogfile starttime endtime > dstfile.log
#用于从慢日志用截取一个时间段的日志方便分析
./cutlogbytime /path/slowlogfile starttime endtime > dstfile.log
时间需要写时戳
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
mysql> select unix_timestamp( '2013-04-05' ); + ------------------------------+ | unix_timestamp( '2013-04-05' ) | + ------------------------------+ | 1365091200 | + ------------------------------+ 1 row in set (0.00 sec) mysql> select unix_timestamp( '2013-04-06' ); + ------------------------------+ | unix_timestamp( '2013-04-06' ) | + ------------------------------+ | 1365177600 | + ------------------------------+ 1 row in set (0.00 sec) |
1
|
. /cutlogbytime /path/slowlogfile 1365091200 1365177600 > 20130405_slow.log |
这样得到一天的日志文件就小一点的也容易分析了。而且可以根据天的文件,在取一天的某个时间点的日志。