centos7 xtrabackup mysql(8)增量备份 脚本(2)
创始人
2024-11-14 15:05:46
0次

centos7 xtrabackup mysql(8)增量备份 脚本(2)

Shell 基本运算符
https://www.runoob.com/linux/linux-shell-basic-operators.html

https://blog.csdn.net/weixin_30823001/article/details/96417008

https://blog.csdn.net/weixin_35985795/article/details/113379060

测试用脚本

cat script_xtrabackup.sh

#!/bin/sh . /etc/profile user=root password=1234aA~1 backup_dir=/data/ gzip_dir=$backup_dir log_dir=$backup_dir/log  # 全备是在一周的第几天 full_backup_week_day=1 error_log=  # 备份日期  backup_date=`date +%Y%m%d`   # 备份时间  backup_time=`date +%H-%M-%S`  # 备份时的周几  backup_week_day=`date +%u`  mkdir -p $backup_dir  mkdir -p $log_dir   log_file=${backup_dir}/log/backup.log log_x_file=${backup_dir}/log/backup_xtra.log   x_file_size=`ls -l $log_x_file | awk '{print $5}'`  num_x_file_size=$((x_file_size)) echo $num_x_file_size  if [ $num_x_file_size -gt 9000000 ];then     echo "" > $log_x_file fi   echo $backup_date echo $backup_time echo $backup_week_day  let delta=backup_week_day-full_backup_week_day  echo $delta echo "" echo "" echo '------------------  start  ---------------------'${backup_date} ${backup_time} >> $log_file  if [ "$delta" -eq 0 ] then     # 全量备份     echo '全量备份 delta=$delta' >> ${log_file}      mkdir -p $backup_dir/backup$backup_date      if [ -e "$backup_dir/backup$backup_date/full_backup" ];then         echo "full_backup exist " >> ${log_file}          exit 0     fi      xtrabackup --backup --target-dir=$backup_dir/backup$backup_date/full_backup --user=$user --password=$password --socket=/opt/datadir/mysql/mysql.sock >> ${log_x_file} 2>&1  elif [ "$delta" -eq 1 ] then     echo ""   >> ${log_file}     echo ""   >> ${log_file}     echo "第一次增量备份 delta=$delta" >> ${log_file}     date_last=$(date -d "-1 day" '+%Y%m%d')     echo $date_last >> ${log_file}      if [ -e "$backup_dir/backup${date_last}/inc_1_backup" ];then         echo "inc_1_backup exist " >> ${log_file}          exit 0     fi      if [ ! -e "$backup_dir/backup${date_last}/full_backup" ];then         echo "full_backup not exist " >> ${log_file}          exit 0     fi        xtrabackup --backup --target-dir=$backup_dir/backup${date_last}/inc_1_backup --incremental-basedir=$backup_dir/backup${date_last}/full_backup --user=root --password=1234aA~1 --socket=/opt/datadir/mysql/mysql.sock  >> ${log_x_file} 2>&1  elif [ "$delta" -gt 0 ] then     echo ""   >> ${log_file}     echo ""   >> ${log_file}     echo "delta大于0 增量备份 delta=$delta" >> ${log_file}     date_last=$(date -d "-${delta} day" '+%Y%m%d')     echo $date_last  >> ${log_file}      if [ -e "$backup_dir/backup${date_last}/inc_${delta}_backup" ];then         echo "inc_${delta}_backup exist " >> ${log_file}          exit 0     fi       if [ ! -e "$backup_dir/backup${date_last}/inc_$((delta-1))_backup" ];then         echo "$backup_dir/backup${date_last}/inc_$((delta-1))_backup"         echo "inc_$((delta-1))_backup not exist " >> ${log_file}          exit 0     fi        xtrabackup --backup --target-dir=$backup_dir/backup${date_last}/inc_${delta}_backup --incremental-basedir=$backup_dir/backup${date_last}/inc_$((delta-1))_backup --user=root --password=1234aA~1 --socket=/opt/datadir/mysql/mysql.sock  >> ${log_x_file} 2>&1 else     echo ""   >> ${log_file}     echo ""   >> ${log_file}     echo "delta小于0 增量备份 delta=$delta" >> ${log_file}     let num=7+$delta     echo 'num ='${num} >> ${log_file}     date_last=$(date -d "-${num} day" '+%Y%m%d')     echo $date_last >> ${log_file}     echo $((num-1)) >> ${log_file}      if [ -e "$backup_dir/backup${date_last}/inc_${num}_backup" ];then         echo "inc_${num}_backup exist " >> ${log_file}          exit 0     fi       if [ ! -e "$backup_dir/backup${date_last}/inc_$((num-1))_backup" ];then         echo "inc_$((num-1))_backup not exist " >> ${log_file}          exit 0     fi       xtrabackup --backup --target-dir=$backup_dir/backup${date_last}/inc_${num}_backup --incremental-basedir=$backup_dir/backup${date_last}/inc_$((num-1))_backup --user=root --password=1234aA~1 --socket=/opt/datadir/mysql/mysql.sock  >> ${log_x_file} 2>&1 fi      #sudo xtrabackup --backup --target-dir=/data//backup20240729/inc_3_backup --incremental-basedir=/data//backup20240729/inc_1_backup --user=root --password=1234aA~1 --socket=/opt/datadir/mysql/mysql.sock   

恢复提示语句 脚本

cat create_restore_file.sh

#!/bin/sh  mysql_dir=/opt/datadir/ backup_dir=/data/  date2="20080203" date_store=`date -d "$date2" +%s` echo $date_store file_store='' for file in $backup_dir/* do     echo $file     if [ -d "$file" ];then         echo "$file is a dir"         dir_name=${file##*/}         echo "file name = $dir_name"         if [[ $dir_name == backup* ]];then             echo "dir_name= $dir_name"             substring=${dir_name:6:8}             echo "substring=$substring"             date1=`date -d "$substring" +%s`             echo "$date1"             if [ $date_store -lt $date1 ];then                date_store=$date1                echo "hello $date_store"                file_store=$file                echo "$file_store"             fi         fi     fi done  num='0' for file in $file_store/* do     echo $file     if [ -d "$file" ];then         dir_name=${file##*/}         echo "file name = $dir_name"         if [[ $dir_name == inc* ]];then             echo "dir_name= $dir_name"             substring=${dir_name:4:1}             echo "substring=$substring"             if [ $num -lt $substring ];then                num=$substring             fi         fi     fi done  echo "num= $num" echo "sudo systemctl stop mysqld" > ~/restore_sql.txt echo "sudo cp -r ${mysql_dir}/mysql ${mysql_dir}/bak_mysql" >> ~/restore_sql.txt echo "sudo rm -rf ${mysql_dir}/mysql/*" >> ~/restore_sql.txt  echo "sudo xtrabackup --prepare --apply-log-only --target-dir=$file_store/full_backup" >> ~/restore_sql.txt   cnt=$((num)) echo "cnt = $cnt" if [ $num -gt '0' ];then     for((i=1;i<$cnt;i++));     do         echo "xtrabackup --prepare --apply-log-only --target-dir=$file_store/full_backup --incremental-dir=$file_store/inc_${i}_backup" >> ~/restore_sql.txt     done     echo "xtrabackup --prepare  --target-dir=$file_store/full_backup --incremental-dir=$file_store/inc_${cnt}_backup" >> ~/restore_sql.txt  fi  echo "sudo xtrabackup --copy-back  --target-dir=$file_store/full_backup" >> ~/restore_sql.txt  echo "sudo chown -R mysql.mysql ${mysql_dir}/mysql/*" >> ~/restore_sql.txt  echo "sudo systemctl restart mysqld" >> ~/restore_sql.txt  

相关内容

热门资讯

每日必看!江岸多玩到底能开挂吗... 每日必看!江岸多玩到底能开挂吗(辅助挂),江岸多玩原来真的有辅助挂讲义1、江岸多玩脚本辅助下载、江岸...
玩家交流!颖河竞技怎么开挂(外... 玩家交流!颖河竞技怎么开挂(外挂),颖河竞技好像是有外挂教材一、颖河竞技游戏安装教程牌型概率发牌机制...
最新通报!皮皮四川麻将软件下载... 最新通报!皮皮四川麻将软件下载(辅助挂),皮皮四川麻将果然有辅助挂模块1、操作简单,无需皮皮四川麻将...
一分钟揭秘!52游戏开挂脚本(... 一分钟揭秘!52游戏开挂脚本(透视挂),52游戏切实有透视挂法子52游戏脚本下载中分为三种模型:52...
一分钟快速了解!堆堆乐开挂破解... 一分钟快速了解!堆堆乐开挂破解(外挂),堆堆乐竟然真的有外挂方针1、下载好堆堆乐正确养号方法之后点击...
重大通报!汇城贵州麻将开挂脚本... 重大通报!汇城贵州麻将开挂脚本(开挂),汇城贵州麻将原来真的有开挂法门1、重大通报!汇城贵州麻将开挂...
盘点一款!七色城透视挂件(外挂... 盘点一款!七色城透视挂件(外挂),七色城切实是真的有外挂经验1、全新机制【七色城ai辅助工具激活码】...
今日头条!多多休闲透视软件下载... 今日头条!多多休闲透视软件下载(外挂),多多休闲确实是真的有外挂攻略1、首先打开多多休闲辅助器下载最...
关于!钱柜麻将真的有透视吗(辅... 关于!钱柜麻将真的有透视吗(辅助器),钱柜麻将一贯是有辅助器练习钱柜麻将能透视中分为三种模型:钱柜麻...
今日焦点!河北家乡棋牌辅助工具... 今日焦点!河北家乡棋牌辅助工具(外挂),河北家乡棋牌果然是有外挂手册小薇(辅助器软件下载)致您一封信...