【工具】利用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/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- python傳送郵件Python
- Python SMTP傳送郵件Python
- 命令列郵件傳送工具命令列
- python實現傳送郵件Python
- 利用Oracle資料庫傳送郵件Oracle資料庫
- SpringBoot整合Mail傳送郵件&傳送模板郵件Spring BootAI
- 郵件傳送
- 傳送郵件
- Python3實現自動傳送MySql查詢併傳送郵件PythonMySql
- Mysql 慢日誌分析工具MysqldumpslowMySql
- python實現郵件的傳送Python
- java郵件傳送Java
- Django——郵件傳送Django
- gmail傳送郵件AI
- phpcms傳送郵件PHP
- 郵件的傳送
- Laravel 傳送郵件Laravel
- thinkjs 傳送郵件JS
- SpringBoot傳送郵件Spring Boot
- SpringBoot郵件傳送Spring Boot
- Laravel傳送郵件Laravel
- PHP傳送郵件PHP
- nodejs 傳送郵件NodeJS
- Python 傳送帶有附件的郵件Python
- 在Python如何使用SMTP傳送郵件Python
- Python 傳送郵件的幾種方式Python
- Java Mail 郵件傳送(二):簡單封裝的郵件傳送JavaAI封裝
- laravel中使用利用訊息佇列傳送郵件Laravel佇列
- 用Python3傳送郵件詳解Python
- 使用Python批次傳送個性化郵件Python
- Python 實現郵件傳送功能(進階)Python
- Python 實現郵件傳送功能(初級)Python
- Python郵件傳送,看這篇就夠Python
- python實現基於smtp傳送郵件Python
- golang傳送郵件(qq郵箱)Golang
- 使用 Vim 傳送郵件和檢查日曆
- Android 快速傳送郵件Android
- 使用phpmailer傳送郵件PHPAI
- SpringBoot傳送郵件(二)Spring Boot