1. 程式人生 > >mysql資料庫定時備份7天

mysql資料庫定時備份7天

之前寫過一篇部落格,mysql資料庫定時備份,今天舉一個具體完整的例子。

1、在需要備份的資料庫上建立計劃任務指令碼

#!/bin/bash
DATABASE=資料庫名稱
BACKUP_PATH=/backup/db_fullbak/$(date +%F)
BACKUP_XTRA_FILE=$BACKUP_PATH/$DATABASE_$(date +%F).tar.gz
BACKUP_LOG=/backup/db_fullbak/backup.log
CNF=/etc/my.cnf
OLD_PATH=$BACKUP_PATH/$DATABASE_$(date +%F --date='7 days ago')

if [ ! -d $BACKUP_PATH ]
    then
    mkdir -p $BACKUP_PATH
fi

if [ -d $OLD_PATH ]
    then
        rm -rf $OLD_PATH >> $BACKUP_LOG 2>&1
        echo "delete the old dir $(date +%F --date='7 days ago')" > $BACKUP_LOG
fi
cp $CNF $BACKUP_PATH/my.cnf.$(date +%F)
/usr/bin/innobackupex --defaults-file=$CNF --host=localhost --user=root --password=root --slave-info --stream=tar $BACKUP_PATH 2> $BACKUP_LOG | gzip > $BACKUP_XTRA_FILE
echo "################################################################" >> $BACKUP_LOG


2、賦予指令碼許可權

3、加入計劃任務

su - mysql

crontab -e

0 1 * * * /bin/sh  /backup/db_fullbak/full_backup.sh &>>/backup/db_fullbak/backup.log

4、執行指令碼驗證結果

./backup/db_fullbak/full_backup.sh