之前写过一篇博客,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