`
尤文武
  • 浏览: 9320 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

Linux通过Mutt发送Mysql慢查询邮件

阅读更多
项目在上线之后,经常会有客户反馈某个页面查询很慢,解决方案是我们找到对应的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



1
2
分享到:
评论

相关推荐

    mutt 发送附件代码

    linux 使用mutt 发送带附件内容的邮件,将资源写入服务器中

    465+mutt 发送邮件.txt

    使用465端口 mutt发送邮件

    linux邮件自动发送

    在Linux系统中,发送邮件是一项常见的任务,尤其对于系统管理员来说,通过自动化脚本发送邮件是监控、报警或日常报告的重要手段。本文将详细介绍如何在Linux环境下利用脚本实现邮件的自动发送,以及可能涉及的相关...

    centos+mutt+msmtp一键部署邮件发送

    本教程将详细介绍如何在CentOS操作系统上,通过mutt和msmtp工具实现一键部署邮件发送功能。这个过程涉及到Linux系统管理、命令行工具使用以及电子邮件系统的配置。 首先,让我们了解下主要涉及的组件: 1. **...

    Linux部署msmtp+mutt发送邮件功能

    完成上述步骤后,用户就可以在Linux终端中使用mutt撰写和发送邮件,通过msmtp将邮件发送到指定的SMTP服务器。这个过程适用于那些需要在没有图形界面的服务器环境中发送邮件的场景,例如自动化脚本或监控报警通知。 ...

    在Linux命令行发送电子邮件附件的两种方法.doc

    在Linux环境中,系统管理员经常需要通过命令行发送电子邮件,尤其是当需要传递备份文件、日志文件或其他重要系统信息时。本文将详细介绍两种在Linux命令行发送带有附件的邮件的方法,适用于CentOS 7操作系统。 首先...

    linux监控磁盘并发送邮件

    在Linux系统中,监控磁盘空间使用情况...以上就是Linux磁盘监控并发送邮件的全过程,通过这个方法,你可以实时掌握系统的磁盘空间状态,确保服务的稳定运行。记住,根据实际情况调整监控的分区和阈值,以满足特定需求。

    linux使用外部邮箱发送邮件

    在Linux系统中,有时我们需要通过命令行工具发送邮件,特别是在服务器监控或自动化脚本执行时,这成为一种必要的通信方式。本教程将介绍如何在Linux上配置三种不同的方法来使用外部邮箱发送邮件:默认的MAIL客户端,...

    如何在Linux上使用Gmail SMTP服务器发送邮件通知.docx

    在 Linux 上,可以使用 mutt 等指令行邮件客户端来发送邮件。首先,需要安装 mutt,并创建一个 mutt 配置文件 (~/.muttrc),指定 Gmail SMTP 服务器信息。然后,使用 mutt 发送邮件。 以下是一个基本的 mutt 配置...

    msmtp源程序实现了嵌入式消息的发送,并结合mutt壳能量实现了电子邮件的发送和接收.zip

    `msmtp` 和 `mutt` 是两个在Linux和Unix环境中广泛使用的开源工具,用于处理电子邮件的发送和接收。在这个压缩包中,我们似乎得到了一个实现这一功能的具体实例。下面将详细解释这两个工具以及它们如何协同工作。 `...

    msmtp+mutt发送TLS邮件

    执行install.sh前需下载依赖 yum -y install ncurses-devel gcc gcc-c++ gnutls gnutls-devel gnutls-utils openssl openssl-devel libidn libidn-devel

    ARM移植mutt

    ARM上移植mutt,本人已经试验过的,可以向目标邮箱发送邮件,开发板需要设置环境,如果有问题可以留言

    mutt+msmtp

    - **撰写邮件**:使用 mutt 编写邮件,完成后可以通过 msmtp 将邮件发送出去。 - **管理邮件**:mutt 支持标记、存档、删除邮件,还可以通过过滤规则自动处理邮件。 5. **安全与隐私** - **加密通信**:使用 ...

    Mutt windows 版本

    Mutt是一款经典且功能强大的文本模式邮件客户端,最初设计用于Linux和Unix系统,以其简洁高效而受到许多高级用户的喜爱。现在,Mutt已经移植到Windows平台,为Windows用户提供了同样出色的邮件管理体验。这个移植...

    shell脚本通过sendMail25端口发送email邮件.rar

    `sendmail`通常作为命令行工具使用,它接受邮件内容和目的地参数,然后通过SMTP与邮件服务器交互,将邮件发送出去。在shell脚本中,你可以使用以下基本结构来发送邮件: ```bash echo "邮件内容" | sendmail -v -r ...

    获取公网ip并发送邮件.zip

    综合这些信息,我们可以构建一个完整的流程,即一个基于Linux的shell脚本,它周期性地获取公网IP,对比历史记录,一旦发现变化,就通过邮件系统发送提醒。这个脚本对于远程管理和监控个人服务器或者家用网络设备非常...

    mutt使用入门mutt使用入门mutt使用入门mutt使用入门

    mutt是一款经典的开源命令行邮件客户端,深受Linux和Unix系统的用户喜爱。它的简洁、高效以及高度可定制性使得许多高级用户钟情于它。本指南将帮助初学者掌握mutt的基本使用方法,从而在终端环境下轻松处理电子邮件...

    mutt-1.4.2.3

    《mutt-1.4.2.3:在ARM平台上实现邮件发送的详细解析》 mutt是一款经典的、命令行界面的电子邮件客户端,以其简洁高效而受到许多技术爱好者的青睐。本文将深入探讨mutt的1.4.2.3版本,并结合在ARM架构上的应用,...

    使用Mutt+msmtp+crontab监控主机磁盘使用率并定时发送邮件通知.doc

    标题中的“使用Mutt+msmtp+...至此,一个完整的监控系统已设置完毕,当磁盘使用率超过预设值时,系统会自动通过邮件发送警告。这种方案能够帮助运维人员及时了解服务器的健康状况,避免因磁盘空间不足引发的问题。

    linux发送email

    本文将深入探讨如何在Linux环境中通过命令行发送电子邮件。 一、使用`mailx` `mailx`是Linux中最传统的邮件发送工具之一。它是一个基于终端的邮件客户端,允许用户发送、接收和管理邮件。要使用`mailx`,首先确保...

Global site tag (gtag.js) - Google Analytics