Mysql:mysqldumpslow 技巧:如何不截断 slow.log 文件,直接指定开始starttime时间,进行分析?
slow日志文件很大很大,包含很多的时间段,如何指定开市时间进行分析呢?
mysqldumpslow的选择中,没有开始、结束时间的选项。
绝大部分场景下,结束时间不是很重要,而开始时间就很有必要指定了。怎么办?
截断slow日志文件最常规做法,不过很麻烦不是。
以下是个技巧:
最最最佳做法:使用sed 模式范围
sed -n '/Time: 2022-12-20/,$ p' /data/mysql/slow.log | mysqldumpslow -s at -n 10 - | more
sed -n '/Time: 2022-12-20/,$ p' /data/mysql/slow.log | mysqldumpslow -s at -n 10 - | more
sed -n '/Time: 2022-12-20/,$ p' /data/mysql/slow.log | mysqldumpslow -s at -n 10 - | more
另一种写法,直接使用grep的高级功能,更简洁
grep -A 999999999 "Time: 2022-12-20" /data/mysql/slow.log | mysqldumpslow -s at -n 10 - | more
tail -n +N 方式,也比较麻烦,不推荐
tail -n +4858883 /data/mysql/slow.log | mysqldumpslow -s at -n 10 - | more
tail -n +$(grep -n "Time: 2022-12-20" /data/mysql/slow.log | head -1 | cut -d : -f 1 ) /data/mysql/slow.log | mysqldumpslow -s at -n 10 - | more
浙公网安备 33010602011771号