使用Xtrabackup工具设置自动备份。
自动脚本:
Xtrabackup脚本语言:
- 准备工作
首先解释find命令,下面解释脚本用到参数:
find /home/backup/ -name "mdgf_*" -mtime +6 -exec rm -rf {} \;
#/home/backup/:在此目录下查找 -name 查找文件名的方式;
#"mdgf_*"文件名中要求后缀是aic的所有文件;
#-mtime +6 6天以前的文件;
#-exec 找到后执行命令;
#rm -rf {}命令就是删除文件;
#\;这是格式要求无具体含义。
find命令参数(全部参数详解)
然后解释用到的xtrabackup参数,下面是完全备份语言:
innobackupex --defaults-file=/etc/my.cnf --user=$user --password=$pwd --no-timestamp /home/backup/mdgf_$dt > /tmp/$log 2>&1
#--defaults-file 指定加载MySQL的配置文件位置;
#--no-timestamp 把备份放在指定的目录里;
#2>&1 使用 > 将标准输出和标准错误信息输出(打印log日志)。
下面是增量备份语言:
innobackupex --defaults-file=/etc/my.cnf --user=$user --password=$pwd --no-timestamp --incremental /home/backup/mdgf_$dt --incremental-basedir=/home/backup/mdgf_$lastday > /tmp/$log 2>&1
#--incremental 指定备份方式为增量备份 后面是增量备份目录;
#--incremental-basedir 指定作为增量备份的基础数据库目录。
xtrabackup命令参数(全部参数详解)
2. mysqlback.sh脚本
#!/bin/bash
# filename :mysqlback.sh
# Author :Li
day=`date +%w`
dt=`date +%Y%m%d`
lastday=`date -d '1 days ago' +%Y%m%d`
log=backuplog.`date +%Y%m%d`
user=root
pwd='这里写密码'
case $day in
0)
# 周日完全备份
## find 查找备份目录中6天以前的文件删除
find /home/backup/ -name "mdgf_*" -mtime +6 -exec rm -rf {} \;
innobackupex --defaults-file=/etc/my.cnf --user=$user --password=$pwd --no-timestamp /home/backup/mdgf_$dt > /tmp/$log 2>&1 ;;
1)
#周一增量备份周日
innobackupex --defaults-file=/etc/my.cnf --user=$user --password=$pwd --no-timestamp --incremental /home/backup/mdgf_$dt --incremental-basedir=/home/backup/mdgf_$lastday > /tmp/$log 2>&1 ;;
2)
#周二增量备份周一
innobackupex --defaults-file=/etc/my.cnf --user=$user --password=$pwd --no-timestamp --incremental /home/backup/mdgf_$dt --incremental-basedir=/home/backup/mdgf_$lastday > /tmp/$log 2>&1 ;;
3)
#周三完全备份
find /home/backup/ -name "mdgf_*" -mtime +6 -exec rm -rf {} \;
innobackupex --defaults-file=/etc/my.cnf --user=$user --password=$pwd --no-timestamp /home/backup/mdgf_$dt > /tmp/$log 2>&1 ;;
4)
#周四增量备份周三
innobackupex --defaults-file=/etc/my.cnf --user=$user --password=$pwd --no-timestamp --incremental /home/backup/mdgf_$dt --incremental-basedir=/home/backup/mdgf_$lastday > /tmp/$log 2>&1 ;;
5)
#周五增量本分周四
innobackupex --defaults-file=/etc/my.cnf --user=$user --password=$pwd --no-timestamp --incremental /home/backup/mdgf_$dt --incremental-basedir=/home/backup/mdgf_$lastday > /tmp/$log 2>&1 ;;
6)
#周六增量备份周五
innobackupex --defaults-file=/etc/my.cnf --user=$user --password=$pwd --no-timestamp --incremental /home/backup/mdgf_$dt --incremental-basedir=/home/backup/mdgf_$lastday > /tmp/$log 2>&1 ;;
esac
find /tmp -mtime +6 -type f -name 'backuplog.*' -exec rm -rf {} \;