使用xtrbackup 热备MySQL数据库 以及恢复和自动删除脚本

直接上脚本

热备(全备)

  

#!/bin/bash
user='root'    
passwd='123456'
my_config='/etc/my.cnf'    #mysql configure
log=full-$(date +%Y%m%d-%H%M).log    #log file format
str=full-$(date +%Y%m%d-%H%M).tar.gz #mysqlbackup file format
backup_dir='/var/www/html/manager/data/html/fullmysqlbackup/'  #tar file directory
echo "Start to backup at $(date +%Y%m%d-%H%M)"
if [ ! -d "$backup_dir" ]; then
        mkdir -p $backup_dir
fi
innobackupex   --user=$user     --password=$passwd  --defaults-file=$my_config --databases="databases1 databases2" --stream=tar $backup_dir 2>$backup_dir/$log |gzip 1>$backup_dir/$str         # backup two databases and compress bakcup
if [ $? -eq 0 ];then
        echo "Backup is finish! at $(date +%Y%m%d-%H%M)"
else
        echo "Backup is Fail! at $(date +%Y%m%d-%H%M)"
fi
#Author:V

恢复:(恢复要停掉数据库的哦)

service mysqld stop
mv  /var/lib/mysql /var/lib/mysqlbackup
mkdir -p /var/lib/mysql
cd /home/backup
tar -izxvf full-20150820-0939.tar.gz -C /home/full
cd /home/full
innobackupex --user=root --password=123456 --apply-log /home/full
innobackupex --defaults-file=/etc/my.cnf --user=root --password=123456 --copy-back /home/full
chown -R mysql.mysql /var/lib/mysql
service mysqld start

#Changed some file path, please change your.  Author:V

 自动删除备份:

#!/bin/bash
#author:V
#Dispaly:auto delete mysql backup.

BACKDIR=/home/11/mysqlbackup/
DAYS=3      
FILENAME="full*"
LOGNAME=/var/log/autodel.log
DATA=`date +%Y%m%d` 
           
find $BACKDIR -name "$FILENAME" -type f -mtime +$DAYS -exec ls -lh {} ; >> $LOGNAME 2>&1
if [ $? -eq 0 ];then
        echo "$DATA OK">>$LOGNAME
else
        echo "$DATA FAIL">>$LOGNAME 
        exit 0
fi

#Changed some file path, please change your. Author :V
原文地址:https://www.cnblogs.com/shiyiwen/p/5219316.html