【工具】利用python 傳送MySQL 慢日誌郵件
一 需求
因為開發針對某系統做穩定性建設,需要對資料庫系統的慢日誌進行審計,檢查最佳化。和開發溝通選擇定期傳送慢查詢到開發的郵箱的方式,每日彙總,然後一起評估 最佳化slow query 。
二 工具實現
mail.py 指令碼
sendSlowlog.py
注
本系統已經每小時將slow log 進行分割,關於如何切割,各位可以思考一下。
因為開發針對某系統做穩定性建設,需要對資料庫系統的慢日誌進行審計,檢查最佳化。和開發溝通選擇定期傳送慢查詢到開發的郵箱的方式,每日彙總,然後一起評估 最佳化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)
-
#!/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 進行分割,關於如何切割,各位可以思考一下。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/22664653/viewspace-1441204/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- C#原生郵件傳送+傳送日誌記錄C#
- python傳送郵件Python
- 利用UTL_SMTP傳送郵件
- 命令列郵件傳送工具命令列
- 使用python傳送郵件和接收郵件Python
- Python SMTP傳送郵件Python
- 使用python傳送郵件Python
- 利用Oracle資料庫傳送郵件Oracle資料庫
- Java實現QQ郵件傳送郵件工具類Java
- 郵件傳送
- 傳送郵件
- Python使用SMTP傳送郵件Python
- python實現傳送郵件Python
- Python3實現自動傳送MySql查詢併傳送郵件PythonMySql
- SpringBoot整合Mail傳送郵件&傳送模板郵件Spring BootAI
- Laravel 傳送郵件Laravel
- PHP傳送郵件PHP
- Django——郵件傳送Django
- java郵件傳送Java
- Laravel傳送郵件Laravel
- gmail傳送郵件AI
- Oracle郵件傳送Oracle
- java傳送郵件Java
- Powershell郵件傳送
- thinkphp 郵件傳送PHP
- centos 傳送郵件CentOS
- phpcms傳送郵件PHP
- 郵件的傳送
- 使用python傳送和接收郵件Python
- python實現郵件的傳送Python
- Python通用郵件傳送(smtplib)Python
- 【Python】傳送郵件功能淺析Python
- 利用SPF記錄缺失傳送偽造郵件
- Mysql 慢日誌分析工具MysqldumpslowMySql
- 利用SQL Server 2005資料庫郵件傳送電子郵件SQLServer資料庫
- Java Mail 郵件傳送(二):簡單封裝的郵件傳送JavaAI封裝
- 在Python如何使用SMTP傳送郵件Python
- Python 傳送帶有附件的郵件Python