• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

按日期瓜分mysql slow log

mysql 搞代码 7年前 (2018-06-04) 152次浏览 已收录 0个评论

按日期分割mysql slow log
有些mysql slow log是一个大文件,如果不按日期分开会很查找。
所以写了一个脚本分割。

引用
MYSQLSLOW=mysql-slow-new.log
MYSQLSLOW_WORK=mysqlslow_work.log
cp -f $MYSQLSLOW $MYSQLSLOW_WORK
for((i=528;i<=925;i++)); do
split_date=100$i
echo $split_date
let “next_date=$split_date+1”
#echo $next_date
grep -n -m 1 “Time: $next_date ” $MYSQLSLOW_WORK
if [ $? -eq 0 ]
then
#found
cut_line=`grep -n -m 1 “Time: $next_date ” $MYSQLSLOW_WORK | awk -F: ‘{print $1-1}’`
#echo $cut_line
max_line=`wc $MYSQLSLOW_WORK | awk ‘{print $1}’`
let “rest_line=$max_line-cut_line”
head -n $cut_line  $MYSQLSLOW_WORK > mysqlslow_$split_date.log
tail -n $rest_line $MYSQLSLOW_WORK > t.log
cp -f t.log $MYSQLSLOW_WORK

echo $rest_line
fi

done

脚本的思路是找到 “Time: xxxxxx” 的日期,如果找5/28,则需要找后一天的第一行再减1,这样用head可以分割出这一天的日志,然后用tail把后面的取出来作为下一次查找。

for((i=528;i<=925;i++)); do
done

实际上是一个数字循环,但不要紧,没找到的将被忽略,不会生成多余文件。另外在月末会生成错误的日期文件,因为是以数字+1,所以找下一天会错误,但只是文件名错,内容是对的,会生成下个月00号的文件名。也可以多加个判断,这里就懒得动了。


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:按日期瓜分mysql slow log
喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址