python 数据库查询结果邮件提醒_python脚本备份mysql并发送邮件提醒

这是python2.7环境开发的一个脚本,欢迎大家提宝贵意见

#!/usr/bin/env Python

# -*- coding:utf-8 -*-

#导入模块

import MySQLdb

import time

import datetime

import os

import smtplib

from email.Header import Header

from email.mime.text import MIMEText

"""

Purpose: 备份数据库

Created: 2016/12/14

Modified:2016/12/13

@author: tc

"""

class Mail:

def __init__(self,mailServer="smtp.######.com",user="tianyuso",pwd="######"):

self.mailServer = mailServer

self.user = user

self.pwd = pwd

self.conn = None

def send_mail(self,mailFrom,mailTo,msg):

try:

self.conn = smtplib.SMTP()

self.conn.connect(self.mailServer)

self.conn.login(self.user,self.pwd)

self.conn.sendmail(mailFrom, mailTo, msg.as_string())

self.conn.close()

return True

except Exception, e:

return False

def send_text(self,mailFrom,mailTo,subject,text):

msg = MIMEText(str(text),format,'utf-8')

me = ("%s") % (Header(mailFrom,'utf-8'),)

msg['From'] = me

msg['To'] = ",".join(mailTo)

if not isinstance(subject,unicode):

subject=unicode(subject,'utf-8')

msg['Subject'] = subject

print msg

return self.send_mail(me,mailTo,msg)

dbUser='root'

dbPasswd='########'

dbHost='localhost'

dbCharset = 'utf8'

backupDir = '/home/backup'

backupDate =  time.strftime("%Y%m%d")

#查出MySQL中所有的数据库名称

sqlStr1 = "show databases"

try:

connDB= MySQLdb.connect("localhost","root","#######","db" )

connDB.select_db('db')

curSql1=connDB.cursor()

curSql1.execute(sqlStr1)

allDatabase = curSql1.fetchall()

print 'The database backup to start! %s'   %time.strftime('%Y-%m-%d %H:%M:%S')

for db in allDatabase:

dbName = db[0]

fileName = '%s/%s_%s.sql' %(backupDir,backupDate,dbName)

print fileName

if os.path.exists(fileName):

os.remove(fileName)

os.system("mysqldump -h%s -u%s -p%s %s --default_character-set=%s > %s/%s_%s.sql" %(dbHost,dbUser,dbPasswd,dbName,dbCharset,backupDir,backupDate,dbName))

s = Mail()

subject = "mysql备份成功"

mess = "hi, 数据库备份成功"

s.send_text("发件人",["收件人1","收件人2"],subject,mess)

#    print 'The database backup success! %s'  %time.strftime('%Y-%m-%d %H:%M:%S')

#异常

except MySQLdb.Error,err_msg:

print "MySQL error msg:",err_msg

s = Mail()

subject = "mysql备份失败"

mess = err_msg

s.send_text("tczhange@isoftstone.com",["收件人1","收件人2"],subject,mess)

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/26366838/viewspace-2130802/,如需转载,请注明出处,否则将追究法律责任。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值