新建一個(gè)腳本/root/backup.py居暖,內(nèi)容如下:
# -*- coding: utf-8 -*-
'''
腳本作者:昨、夜星辰
腳本作用:使用innobackupex命令對MySQL數(shù)據(jù)庫進(jìn)行周期備份
創(chuàng)建日期:2016年9月21日
'''
import os
from datetime import datetime
# MySQL服務(wù)root用戶的密碼
password = ''
# 存儲備份的目錄
directory = ''
# 當(dāng)天的星期
weekday = datetime.today().weekday()
'''
關(guān)于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)))
執(zhí)行下面的命令進(jìn)入crontab的編輯模式:
crontab -e
新增以下內(nèi)容:
# 每天凌晨2點(diǎn)自動執(zhí)行數(shù)據(jù)庫備份腳本
0 2 * * * python /root/python &> /dev/null