percona xtrabackupd定期做全备,增量备份shell脚本

​备份策略:

每周日做一全备,每天做一增量备份。

 

一:全备脚本

cat xtrabackup_full.sh

#!/bin/bash  

local_ip="$(/sbin/ifconfig eth0|grep 'inet addr'|awk -F : '{print $2}'|cut -d ' ' -f1)" 

email='……' 

user='root' 

passwd='……' 

my_config='/etc/my.cnf' 

log=$(date +%Y%m%d%H%M).log  

str=$(date +%Y%m%d%H%M).tar.gz  

backup_dir='/backup/mysql/xtrabackup' 

 

source='……'

target='……'

title='xtrabackup information'  

MailUser='pingping1990429' 

MailPassword='……'

content1='Server_name:'$(hostname)' Server_ip:'$local_ip' '$(date +"%y-%m-%d %H:%M:%S")' mysql full backup Success!'

content2='Server_name:'$(hostname)' Server_ip:'$local_ip' '$(date +"%y-%m-%d %H:%M:%S")' mysql full backup Faild!'

 

echo "Start to backup at $(date +%Y%m%d%H%M)"

if [ ! -d "$backup_dir" ];then  

    mkdir -p $backup_dir  

fi  

#innobackupex --defaults-file=$my_config --user=$user --password=$passwd  --database=$database --stream=tar $backup_dir 2>$backup_dir/$log | gzip 1>$backup_dir/$str  

innobackupex --defaults-file=$my_config --user=$user --password=$passwd   $backup_dir  

if [ $? -eq 0 ];then  

    echo "Backup is finish! at $(date +%Y%m%d%H%M)"  

    echo "Server_name:$(hostname) Server_ip:$local_ip $(date +"%y-%m-%d %H:%M:%S") mysql full backup Success!"

    /usr/local/bin/sendEmail -f $source -t $target  -s smtp.163.com -u $title -xu $MailUser -xp $MailPassword -m $content1

    exit 0  

else  

    echo "Backup is Fail! at $(date +%Y%m%d%H%M)"  

    echo "Server_name:$(hostname) Server_ip:$local_ip $(date +"%y-%m-%d %H:%M:%S") mysql full backup Fail!"

    /usr/local/bin/sendEmail -f $source -t $target  -s smtp.163.com -u $title -xu $MailUser -xp $MailPassword -m $content2   

    exit 1  

fi  

echo "Backup Process Done"  

 

二:增量备份

[root@single download]# cat xtrabackup_incremental.sh 

#!/bin/bash  

#增量备份依赖于前一天的备份,所以假如前一天备份失败,后续的也会失败

local_ip="$(/sbin/ifconfig eth0|grep 'inet addr'|awk -F : '{print $2}'|cut -d ' ' -f1)" 

email='……'

user='root'

passwd='……'

my_config='/etc/my.cnf'

log=$(date +%Y%m%d%H%M).log

str=$(date +%Y%m%d%H%M).tar.gz

backup_dir='/backup/mysql/xtrabackup'

 

source='……'

target='……'

title='xtrabackup information'

MailUser='……'

MailPassword='……'

content1='Server_name:'$(hostname)' Server_ip:'$local_ip' '$(date +"%y-%m-%d %H:%M:%S")' mysql incremental backup Success!'

content2='Server_name:'$(hostname)' Server_ip:'$local_ip' '$(date +"%y-%m-%d %H:%M:%S")' mysql incremental backup Faild!'

 

last_day=$(date -d "1 days ago" +%Y-%m-%d)  

today=$(date +%Y%m%d)  

filename=$(find $backup_dir -name "$last_day*" -print|awk -F / '{print $NF}')  

echo "Start to backup at $(date +%Y%m%d%H%M)"  

if [ ! -d "$backup_dir" ];then  

    mkdir -p $backup_dir  

fi  

#innobackupex --defaults-file=$my_config --user=$user --password=$passwd   --stream=tar $backup_dir 2>$backup_dir/$log | gzip 1>$backup_dir/$str  

innobackupex --defaults-file=$my_config --user=$user --password=$passwd   --incremental $backup_dir --incremental-basedir=$backup_dir/$filename

if [ $? -eq 0 ];then  

    echo "Backup is finish! at $(date +%Y%m%d%H%M)"  

    echo "Server_name:$(hostname) Server_ip:$local_ip $(date +"%y-%m-%d %H:%M:%S") mysql incremental backup Success!"

    /usr/local/bin/sendEmail -f $source -t $target  -s smtp.163.com -u $title -xu $MailUser -xp $MailPassword -m $content1

    exit 0  

else  

    echo "Backup is Fail! at $(date +%Y%m%d%H%M)"  

    echo "Server_name:$(hostname) Server_ip:$local_ip $(date +"%y-%m-%d %H:%M:%S") mysql incremental backup Fail!"

    /usr/local/bin/sendEmail -f $source -t $target  -s smtp.163.com -u $title -xu $MailUser -xp $MailPassword -m $content2

    exit 1  

fi  

echo "Backup Process Done"  

 

三:结合crontab来实现自动备份

 

0 0 * * 0 /download/xtrabackup_full.sh>> /download/xtrabackup_full.log 2>&1  
0 0 * * 1-6 /download/xtrabackup_incremental.sh>>/download/xtrabackup_incremental.log 2>&1  

 

--本篇文章参考自:http://www.aixchina.net/home/space.php?uid=408689&do=blog&id=147879

  • 0
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值