您好,登錄后才能下訂單哦!
一、先來看備份mysql數據庫的命令
mysqldump -u root --password=root --database abcDataBase > c:/abc_backup.sql
二、寫Python程序
BackupsDB.py
#!/usr/bin/python # -*- coding: UTF-8 -*- ''''' zhouzhongqing
備份數據庫
''' import os import time import sched import smtplib from email.mime.text import MIMEText from email.header import Header from email.mime.multipart import MIMEMultipart from email.mime.application import MIMEApplication # 第一個參數確定任務的時間,返回從某個特定的時間到現在經歷的秒數 # 第二個參數以某種人為的方式衡量時間 schedule = sched.scheduler(time.time, time.sleep); def backupsDB(): # 如果是linux改下路徑就可以了 cmdString = 'D:/php/phpStudy/MySQL/bin/mysqldump -u root --password=root --database abcDataBase > c:/abc_backup.sql'; os.system(cmdString); def sendMail(): _user = "mall@xxxx.com"#發送者的郵箱 _pwd = "xxxx"#發送者的密碼 _to = "1030907690@qq.com"#接收者的郵箱 # 如名字所示Multipart就是分多個部分 msg = MIMEMultipart() msg["Subject"] = "商城數據庫備份" msg["From"] = _user msg["To"] = _to # ---這是文字部分--- part = MIMEText("商城數據庫備份") msg.attach(part) # ---這是附件部分--- # 類型附件 part = MIMEApplication(open('c:/abc_backup.sql', 'rb').read()) part.add_header('Content-Disposition', 'attachment', filename="abc_backup.sql") msg.attach(part) s = smtplib.SMTP("smtp.exmail.qq.com", timeout=30) # 連接smtp郵件服務器,端口默認是25 s.login(_user, _pwd) # 登陸服務器 s.sendmail(_user, _to, msg.as_string()) # 發送郵件 s.close(); def perform_command(cmd, inc): # 安排inc秒后再次運行自己,即周期運行 schedule.enter(inc, 0, perform_command, (cmd, inc)); os.system(cmd); backupsDB(); sendMail(); def timming_exe(cmd, inc=60): # enter用來安排某事件的發生時間,從現在起第n秒開始啟動 schedule.enter(inc, 0, perform_command, (cmd, inc)) # 持續運行,直到計劃時間隊列變成空為止 schedule.run() if __name__ == '__main__': print("show time after 10 seconds:"); timming_exe("echo %time%", 56400);#每間隔56400秒備份發送郵件 #46400 基本上是半天
然后命令
py BackupsDB.py
運行程序就可以了。
總結
以上所述是小編給大家介紹的Python實現定時備份mysql數據庫并把備份數據庫郵件發送,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對億速云網站的支持!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。