这是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/,如需转载,请注明出处,否则将追究法律责任。