分别基于innobackupex备份工具的mysql全量备份和增量备份shell脚本

之前有过一个基于innobackupex备份mysql文章,不是很简单实用。这里是一个更为简单的脚本,可以实现分别基于innobackupex备份工具的mysql全量备份和增量备份。
注意:
1,线上用的时候请注意将自己的用户名和密码都设置对,这里password密码我暂时用xxxxxx代替。当然,你也可以建立专用于备份用的数据库用户并设置权限。
2,根据情况设置一个任务计划。
mysql全量备份脚本如下:

#!/bin/bash
#author:21yunwei
logfile="/home/mysqlbak/mysql_full_bak_time.log"
backuplogfile="/home/mysqlbak/mysqlbackup.log"
mysql_bakdir="/home/mysqlbak/"
user=root
password=xxxxxx

[ ! -d $mysql_bakdir  ] &&  mkdir -p $mysql_bakdir
[ ! -f  $logfile ] && touch  $logfile

innobackupex --defaults-file=/etc/my.cnf --user=${user} --password=${password} --compress –-parallel=4 –-throttle=400 --stream=tar ${mysql_bakdir} 2>&1 >> $backuplogfile
reset=$?
finishtime=`date +%Y%m%d_%H%M%S`
[ ${reset} -eq 0 ] && echo  "Mysql fullbakup  finished, time: $finishtime">>  $logfile || echo "Mysql fullbakup failed,please check time:$finishtime" >>  $logfile

mysql增量备份脚本如下:

#!/bin/bash
#author:21yunwei
time=`date -d '-3 day' +%Y-%m-%d`
logfile="/home/mysqlbak/mysql_full_bak_time.log"
mysql_bakdir="/home/mysqlbak/"
user=root
password=xxxxxx
lastfullbakdir=`ls /home/mysqlbak/ |grep ${time}`

[ ! -d $mysql_bakdir  ] &&  mkdir -p $mysql_bakdir
[ ! -d  $logfile ] && touch  $logfile

innobackupex --defaults-file=/etc/my.cnf --user=${user} --password=${password} --incremental-basedir=${mysql_bakdir}/${lastfullbakdir}  --incremental ${mysql_bakdir}
finishtime=`date +%Y%m%d_%H%M%S`
[ $? -eq 0 ] && echo  "Mysql fullbakup  finished, time: $finishtime">>   $logfile || echo "Mysql fullbakup failed,please check time:$finishtime">>  $logfile
hmoban主题是根据ripro二开的主题,极致后台体验,无插件,集成会员系统
自学咖网 » 分别基于innobackupex备份工具的mysql全量备份和增量备份shell脚本