使用Xtrabackup工具设置自动备份。

自动脚本:

如何使用自动备份脚本。

Xtrabackup脚本语言:
  1. 准备工作
    首先解释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 {} \;

posted @ 2019-10-08 14:29  小沐酱  阅读(1)  评论(0编辑  收藏  举报  来源