【工具】利用python 发送MySQL 慢日志邮件

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS PostgreSQL,高可用系列 2核4GB
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
简介:
一 需求
    因为开发针对某系统做稳定性建设,需要对数据库系统的慢日志进行审计,检查优化。和开发沟通选择定期发送慢查询到开发的邮箱的方式,每日汇总,然后一起评估 优化 slow query 。

二 工具实现

mail.py  脚本


#!/usr/bin/env python
 
# -*- coding: utf-8 -*-

# mail.py

import os.path 

import time

import sys

import os

import json

import string

import random

import smtplib

import time

from datetime import date

from email.mime.multipart import MIMEMultipart

from email.mime.text import MIMEText

from email.mime.image import MIMEImage

from email.Header import Header

from email.MIMEText import MIMEText

from email.MIMEMultipart import MIMEMultipart



mail_user="xxx@xxxx.com";

mail_pass="xxxxx";

mail_smtp_server="smtp.xxxxx.com";

mail_smtp_port= 25



def sendMail(contents,subject,attach,mail_to):

    lTime=str(time.strftime('%Y%m%d_%H',time.localtime(time.time())))

    msg = MIMEMultipart('related');

    if subject=="":

        subject='test';

    msg['Subject'] = subject+" Time:"+ lTime;

    msg['From'] = mail_user;

    msg['To'] = ";".join(mail_to) ;

    html="";

    for cont in contents:

        html = html+cont[0];

    msgHtml = MIMEMultipart('alternative');

    msgHtml.set_charset('UTF-8');

    msgAtt = MIMEText(open(attach,'rb').read(),'base','gbk');

    msgAtt["Content-Type"] = 'application/octet-stream'

    msgAtt["Content-Disposition"] = 'attachment; filename="'+subject+'"'

    msg.attach(msgAtt);



    try:

        smtp = smtplib.SMTP();

        smtp.connect(mail_smtp_server,mail_smtp_port)

        smtp.login(mail_user,mail_pass);

        smtp.sendmail(mail_user,mail_to,msg.as_string());

        smtp.close();

    except Exception,e:

        print str(e) 

 sendSlowlog.py



#!/usr/bin/env python
 
# -*- coding: utf-8 -*-

import mail ##使用了上述脚本

import sys

import time

import os 

import datetime



from datetime import date

from os.path import join, getsize 



def sendSlowlog(subject_info,attach,mail_to):

    size = os.path.getsize(attach)

    if(size > 1):

       mail.sendMail("",subject_info,attach,mail_to)





if __name__ == '__main__':

   mail_to=["qilong.yangql@xxxx.com"]

   lDate=str(time.strftime('%Y%m%d',time.localtime(time.time())))

   lTime=str(time.strftime('%Y%m%d_%H',time.localtime(time.time())))

   subject_info="Slowlog of DBname" + lTime

   attach="/u01/my3306/log/slow_"+ lDate +"/slow.log."+lTime

   sendSlowlog(subject_info,attach,mail_to) 


   本系统已经每小时将slow log 进行分割,关于如何切割,各位可以思考一下。 

相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
MySQL数据库入门学习
本课程通过最流行的开源数据库MySQL带你了解数据库的世界。   相关的阿里云产品:云数据库RDS MySQL 版 阿里云关系型数据库RDS(Relational Database Service)是一种稳定可靠、可弹性伸缩的在线数据库服务,提供容灾、备份、恢复、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。 了解产品详情: https://www.aliyun.com/product/rds/mysql 
相关文章
|
3月前
|
存储 缓存 测试技术
理解Python装饰器:简化代码的强大工具
理解Python装饰器:简化代码的强大工具
|
4月前
|
程序员 测试技术 开发者
Python装饰器:简化代码的强大工具
Python装饰器:简化代码的强大工具
220 92
|
5月前
|
数据安全/隐私保护 Python
微信群成员导出工具, 微信群成员导出软件, 微信群管理工具软件【python】
这个工具提供了完整的微信群成员导出功能,包括登录微信、获取群列表、导出成员信息到Excel等功能
|
3月前
|
机器学习/深度学习 编解码 Python
Python图片上采样工具 - RealESRGANer
Real-ESRGAN基于深度学习实现图像超分辨率放大,有效改善传统PIL缩放的模糊问题。支持多种模型版本,推荐使用魔搭社区提供的预训练模型,适用于将小图高质量放大至大图,放大倍率越低效果越佳。
270 3
|
3月前
|
SQL 运维 关系型数据库
深入探讨MySQL的二进制日志(binlog)选项
总结而言,对MySQL binlogs深度理解并妥善配置对数据库运维管理至关重要;它不仅关系到系统性能优化也是实现高可靠性架构设计必须考虑因素之一。通过精心规划与周密部署可以使得该机能充分发挥作用而避免潜在风险带来影响。
131 6
|
4月前
|
人工智能 自然语言处理 安全
Python构建MCP服务器:从工具封装到AI集成的全流程实践
MCP协议为AI提供标准化工具调用接口,助力模型高效操作现实世界。
824 1
|
3月前
|
算法 安全 数据安全/隐私保护
Python随机数函数全解析:5个核心工具的实战指南
Python的random模块不仅包含基础的随机数生成函数,还提供了如randint()、choice()、shuffle()和sample()等实用工具,适用于游戏开发、密码学、统计模拟等多个领域。本文深入解析这些函数的用法、底层原理及最佳实践,帮助开发者高效利用随机数,提升代码质量与安全性。
670 0
|
4月前
|
API 数据安全/隐私保护 Python
拼多多批量上架软件, 电商一键上货发布工具,python电商框架分享
多线程批量上传架构,支持并发处理商品数据 完整的拼多多API签名和token管理机制
|
4月前
|
安全 API 数据安全/隐私保护
|
4月前
|
Java API 数据安全/隐私保护
淘宝一键上货发布软件,淘宝批量发布上架工具, 淘宝批量上架脚本【python】
这个Python脚本实现了以下功能: 完整的淘宝API调用封装

推荐镜像

更多