- 论坛徽章:
- 0
|
本帖最后由 daveyhook 于 2010-04-12 17:47 编辑
mysql的慢查询日志都是如下的格式:
# Time: 100322 10:16:01
# User@Host: aaa[aa] @ [192.168.3.12]
# Query_time: 3.782696 Lock_time: 0.000090 Rows_sent: 0 Rows_examined: 500036
SET timestamp=1269224161;
SELECT * FROM xx.yy WHERE mid='999999' AND mppstatus NOT IN (2,5,6,7,8,9,10,11,12);
我的目的是想把一天之内的慢查询重定向到一个文本,然后再用别的方法统计。红色部分应该怎么改呢?或者换一种方式?谢谢。
#!/bin/sh
export PATH=/usr/kerberos/sbin:/usr/kerberos/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin
TIME=100322
DATADIR=$(ps -ef | awk '(/mysql/ && /mysqld_safe/){print $10}' | awk -F"=" 'NR==1{print $2}')
BEGIN_TIME=$(grep "$TIME" $DATADIR/slow_queries | sed -n '2p')
END_TIME=$(grep "$TIME" $DATADIR/slow_queries | sed -n '$p')
awk '/$BEGIN_TIME/,/$END_TIME/' $DATADIR/slow_queries > /slow.log |
|