项目在上线之后,经常会有客户反馈某个页面查询很慢,解决方案是我们找到对应的SQL来分析索引问题,其实解决起来并不麻烦,但是给客户造成的体验就不好了,大部分执行效率比较差的语句应该是在开发或者测试阶段就优化完成的,mysql提供了慢查询日志,默认是关闭的,可以通过my.cnf(my.ini)来配置打开
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<no_reply@pracbiz.com>" -- 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
分享到:
相关推荐
linux 使用mutt 发送带附件内容的邮件,将资源写入服务器中
使用465端口 mutt发送邮件
centos+mutt+msmtp一键部署邮件发送,部署时需要将脚本中相关地方更改为自己的。
主要介绍了Linux部署msmtp+mutt实现发送邮件,msmtp是一个SMTP客户端,可将邮件发送至SMTP服务端。具体安装步骤大家参考下本
执行install.sh前需下载依赖 yum -y install ncurses-devel gcc gcc-c++ gnutls gnutls-devel gnutls-utils openssl openssl-devel libidn libidn-devel
ARM上移植mutt,本人已经试验过的,可以向目标邮箱发送邮件,开发板需要设置环境,如果有问题可以留言
/usr/local/mutt/bin/mutt -s "邮件标题" 281450202@qq.com -c 1516070****@139.com </root/jiankong_log/data.log -a /tmp/附件.txt -s 邮件标题 紧接的是接收邮件地址 -c 抄送地址 " /root/jiankong_log/data....
mutt使用入门mutt使用入门mutt使用入门mutt使用入门mutt使用入门mutt使用入门mutt使用入门mutt使用入门mutt使用入门
msmtp源程序实现了嵌入式消息的发送,并结合mutt壳能量实现了电子邮件的发送和接收.zip
Linux 中有很多命令可以实现发送邮件。本教程中包含了最流行的 5 个命令行邮件客户端,你可以选择其中一个。这 5 个命令分别是: mail / mailx mutt mpack sendmail ssmtp 工作原理 我先从整体上来解释下 ...
Mutt 显然是一个 Unix 的邮件程序,它跟一般的 Windows 邮件程序不同,它不是一个包罗万象的大杂烩。你甚至会发现它根本不直接发出邮件,它从来不自己编辑邮件,它从来不自己对邮件进行加密和数字签名……Mutt 更像...
配置NGIOS监控服务器的配置外部邮箱发送邮件的方法,这里我没有使用飞信来进行发送短信,而是采用了189邮箱,因为邮箱自动回发邮件到达短信给手机。 讲了三种配置方法:1)默认的MAIL 2)MSTMP+MUTT 3)MAILX
MUA (mail user agent 邮件用户代理),用于用户端发送邮件或者阅读邮件 linux有mutt这个工具 MTA (mail tranfer agent 邮件传输代理 ),相当于一个邮局,server端的软件,主要的功能有,接收MUA发来的邮件和把...
Mutt windows 邮件客户端 内涵中文 配置文档 linux下的牛B邮件客户端 移植到了windows了! 无法打开的可以下载7zip来打开。 7zip是夸平台压缩解压缩软件。
tar xvf msmtp-1.4.17.tar.bz2 cd msmtp-1.4.17 ./configure --prefix=/usr/local/msmtp make make install cd /usr/local/msmtp/ mkdir etc #配置文件目录和配置文件都要自己建 cd etc vim msmtprc #手动创建配置...
自己正在使用的mutt配置,是mutt+msmtp+getmail收取邮件的,自己做点更改就可一使用
mutt-1.4.2.3.tar.gz 本人用这个版本已经在ARM上实现发送邮件
脚本监控服务器磁盘使用率,并自动 发送邮件通知,显示每天服务期磁盘使用率信息,也可更改脚本,只发送告警信息。这个随意~
主要为大家详细介绍了centos配置mutt和msmtp实现邮件发送,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
mutt+msmtp 安装文件和完整配置文档