使用Python脚本和crond服务实现innobackupex周期备份MySQL数据库

新建一个脚本/root/backup.py,内容如下:

# -*- coding: utf-8 -*-
'''
脚本作者:昨、夜星辰
脚本作用:使用innobackupex命令对MySQL数据库进行周期备份
创建日期:2016年9月21日
'''

import os
from datetime import datetime

# MySQL服务root用户的密码
password = ''

# 存储备份的目录
directory = ''

# 当天的星期
weekday = datetime.today().weekday()

'''
关于weekday的值:
“0”表示星期一,“1”表示星期二,依此类推……“6”表示星期日。

备份模式:
星期日完整备份,星期一至星期六增量备份。
'''
if weekday == 6:
    # 清空存储备份的目录
    os.system('rm -rf %s/*' % directory)
    # 完整备份
    os.system('innobackupex --password=%s %s/%d --no-timestamp' % (password, directory, weekday))
elif weekday == 0:
    if os.path.isdir('%s/6' % directory):
        # 星期一的增量备份
        os.system('innobackupex --password=%s --incremental %s/%d --incremental-basedir=%s/6 --no-timestamp' % (password, directory, weekday, directory))
else:
    if os.path.isdir('%s/%d' % (directory, (weekday - 1))):
        # 其他星期的增量备份
        os.system('innobackupex --password=%s --incremental %s/%d --incremental-basedir=%s/%d --no-timestamp' % (password, directory, weekday, directory, (weekday - 1)))

执行下面的命令进入crontab的编辑模式:

crontab -e

新增以下内容:

# 每天凌晨2点自动执行数据库备份脚本
0 2 * * * python /root/python &> /dev/null

你可能感兴趣的:(使用Python脚本和crond服务实现innobackupex周期备份MySQL数据库)