Zhong__python定时备份MySQL数据库功能

版权声明:个人原创 https://blog.csdn.net/anyedianxia/article/details/85099063

   python功能强大  使用简单  非常适合写脚本程序  在项目开发中  对于数据库的备份几乎是每个成熟的项目中必须要做的一步  Linux中可以利用定时任务crontab配合shell脚本来备份数据库  但是稍微复杂点  而且不易维护  稳定性有时不能保证  这时可以用python写一个脚本程序来进行数据库备份  以下是代码  请读者参考

import sys
import os
curPath = os.path.abspath(os.path.dirname(__file__))
rootPath = os.path.split(curPath)[0]
sys.path.append(rootPath)
# encoding:utf-8
import os
import time
from datetime import datetime
import schedule
def job():
    print("Start >>")
    try:
        #  调用系统命令system  并且记录动作到日志
        os.system("echo 数据库备份开始时间:%s >> log.txt" % datetime.now().strftime('%Y-%m-%d %H:%M:%S'))

        # 数据库备份配置  备份的结果进行压缩为gz压缩包
        os.system("mysqldump -uroot -pPassWord -hIP database | gzip > %s.sql.gz" % datetime.now().strftime('%Y_%m_%d_%H_%M_%S'))
        os.system("echo 数据库备份结束时间:%s >> log.txt" % datetime.now().strftime('%Y-%m-%d %H:%M:%S'))
    except Exception as e:
        os.system("echo %s %s >> e.txt" % (datetime.now().strftime('%Y_%m_%d'), e))

    try:
        # 删除超过30days的数据库备份文件
        os.system('''find /root/Desktop/mysqlBackup -mtime +30 -name "*.sql.gz" -exec rm -rf {} \;''')
    
    except Exception as e:
        os.system("echo %s %s >> e.txt" % (datetime.now().strftime('%Y_%m_%d'),e))

#  调用schedule定时任务  每天03:30开始执行程序进行数据库备份
schedule.every().day.at("03:30").do(job)

#  程序入口
while True:
    schedule.run_pending()
    time.sleep(30)


#  至此  程序完成了  部署在Linux服务器上时  可以使用tmux命令在后台运行



关注微信公众号:邂逅最美的时光

猜你喜欢

转载自blog.csdn.net/anyedianxia/article/details/85099063
今日推荐