阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

mysql_slow_log快速切割脚本

184次阅读
没有评论

共计 935 个字符,预计需要花费 3 分钟才能阅读完成。

最近会比较多的分析 MySQL 的慢日志,应为在 mysql 的慢日志中没有使用 logrotate 所以每次要要查看某一天到现在的慢查询日志都要使用正则工具切割,但是每次重新写就有一点麻烦,所以就用脚本写了下输入时间参数就可以切割日志的简易工具,脚本如下:

#!/bin/bash
#slow_log_cutting.sh version1.0 chmod 700
#use fast cutting mysql_slow_log
#writer jim
#history
#2017.02.06
# 慢日志文件的路径
slow_query_log_file=$(mysql -Bse “show GLOBAL VARIABLES like ‘slow_query_log_file’;” | awk ‘{print $2}’)
# 输出切割日志用的输出文件夹
if [! -e “$outputdir”];then
        mkdir -p “$outputdir”
fi
# 参数判断
if [$# -lt 1];then
    echo “ 请输入需要截取的时间 ”
    echo “ex> $0 args1(日志中的时间戳)”
    exit 0
fi
if [$# -gt 1]; then
        echo “ 输入的参数太多了 ”
    echo “ex> $0 args1(日志中的时间戳)”
    exit 0
fi
time=$1
# 开始日志切割,这里利用了 grep - n 打印某一个日期第一次出现的行,再用 sed 处理
declare -i tmp_rows=$(cat $slow_query_log_file | grep -n “# Time: $time” | awk ‘BEGIN {FS=”:”} NR==1{print $1}’)
declare -i rows=$(($tmp_rows – 1))
cat $slow_query_log_file | sed “1,${rows}d” > $outputdir/localhost-slow.log

这样处理过的输出日志就可以通过 mysqldumpslow 分析切割后的日志进行分析,不过这个脚本有点缺点就是没有对输入的参数进行正则匹配,不过在一般情况下输入正确的时间戳,这样基本就够用了

本文永久更新链接地址 :http://www.linuxidc.com/Linux/2017-02/140282.htm

正文完
星哥玩云-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2022-01-22发表,共计935字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中