mysql 慢查询 邮件 推送_Linux通过Mutt发送Mysql慢查询邮件

log_slow_queries= /var/log/mysql/mysql-slow.log

long_query_time = 1

参数一眼就能看明白了,完了以后需要重启mysql服务,根据配置,如果一条查询语句执行时间超过1秒,就会在日志文件中记录下来。

文件有了,但是要求开发人员每天登录到服务器上看那些语句执行慢肯定是不现实的,所以我通过邮件的形式把这个文件发出来

linux上发邮件的工具有很多,我这里用的是mutt,也是我跟sendmail比较之后觉得相对好用的,安装很简单

sudo apt-get install mutt

接下来就是发送邮件,我是通过shell脚本结合cron来定时发送的,关于shell脚本有个不错的教程http://c.biancheng.net/cpp/shell/,脚本如下

#!/bin/bash

file="/var/log/mysql/mysql-slow.log"

tmpFile="/home/b2b/logs/mysql-slow-result.log"

#create the $tmpFile

if [ ! -e $tmpFile ]

then echo "$tmpFile doesn't exist, will create it";touch $tmpFile

else > $tmpFile

fi

#copy content from $file to $tmpFile

if [ -s $file ]

then cat $file > $tmpFile; > $file

fi

#send email

if [ -s $tmpFile ]

then echo -e "Hello Administrator, \nthis is the slow query log from 192.168.0.169, please check it!" | mutt -s "Slow Query" -a $tmpFile -e "my_hdr From:Pracbiz" -- wwyou@pracbiz.com; echo "Slow Query Email send Successfully"

else echo "No slow query logs need to send"

fi

脚本会建立一个临时文件mysql-slow-result.log,每次把mysql-slow.log内容拷贝到临时文件,然后把mysql-slow.log清空,最后把这个临时文件作为附件发出去,这样做的好处时每次发送的内容都是新生成的,如果日志为空则不发送邮件。

脚本保存为slowQuery.sh,需要执行sudo chmod +x slowQuery.sh让脚本可执行。

最后把任务添加到cron中

0 0 * * * /home/b2b/script/slowQuery.sh

1

2

分享到:

18e900b8666ce6f233d25ec02f95ee59.png

72dd548719f0ace4d5f9bca64e1d7715.png

2015-12-25 18:18

浏览 1353

评论

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值