美文网首页
使用Python脚本和crond服务实现innobackupex

使用Python脚本和crond服务实现innobackupex

作者: yestreenstars | 来源:发表于2016-09-21 10:03 被阅读0次

    新建一个脚本/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

          本文链接:https://www.haomeiwen.com/subject/cogxjttx.html