版权声明:个人原创 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命令在后台运行
关注微信公众号:邂逅最美的时光