脚本备注说明:自己写的脚本,直接拷贝即可,注意修改下自己的数据库账号,密码,此备份文件在基础路径下面,每天备份都会以当日的时间日期为名称命名创建路径存放备份的文件,此备份是全库热备,放到数据库所在服务器里面即可,注意授权。
#!/bin/bash
#基础路径
BASE_PATH=/bak/xbk
#备份日期
BACKUP_DATE=`date +%Y%m%d`
#备份路径
BACKUP_PATH=$BASE_PATH/$BACKUP_DATE
#以日期作为数据库的备份命名
name_dir=$(date +%F"-%H")
#日志文件
LOG_FILE=$BASE_PATH/backup.log
#数据库用户
USER='root'
#数据库密码
PASSWDSTR='root'
#备份数据库服务器说明
IPSTR='db01'
#进入备份基础路径
cd $BASE_PATH
#判断路径如果不存在就创建基础路径
if [ $? -ne 0 ];then
mkdir -p $BASE_PATH
fi
#进入备份路径
cd $BACKUP_PATH
#判断备份路径如果不存在就创建备份路径
if [ $? -ne 0 ];then
mkdir -p $BACKUP_PATH
fi
#进入备份路径
cd $BACKUP_PATH
#进行备份
xtrabackup --backup --binlog-info=on --host=localhost --user=$USER --password=$PASSWDSTR --lock-wait-threshold=40 --lock-wait-timeout=180 --compress --compress-threads=24 --galera-info --stream=xbstream --extra-lsndir=$BACKUP_PATH --target-dir=$BACKUP_PATH 1>$BACKUP_PATH/full.xbstream 2>$BACKUP_PATH/full-$BACKUP_DATE.log
#如果今日备份存在就输出日志信息,并且进入基础备份路径删除5天前的备份记录文件
if [ -d $BASE_PATH/`date +%Y%m%d -d "-1 day"` ]; then
echo `date +%H:%M:%S`': archiving last day backup '$BACKUP_PATH'/'$BACKUP_DATE'.' >> $LOG_FILE
#进入基础路径
cd $BASE_PATH
#删除5天前的备份记录
rm -rf `date +%Y%m%d -d "-5 days"`*
fi
爱你,爱我,爱他,爱众生,爱之不息,爱吾之所爱,生于爱死于爱
2022年8月7日16:16:38