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