Minio全量、增量备份和还原_minio 导出增量数据,2024年最新简直无敌

先自我介绍一下,小编浙江大学毕业,去过华为、字节跳动等大厂,目前阿里P7

深知大多数程序员,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年最新网络安全全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。
img
img
img
img
img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上网络安全知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新

如果你需要这些资料,可以添加V获取:vip204888 (备注网络安全)
img

正文

mkdir -p "$FULL\_BACKUP\_DIR"

fi

全量备份并记录耗时到日志文件中

(time rsync -av --delete “ S O U R C E _ D I R " " SOURCE\_DIR" " SOURCE_DIR""FULL_BACKUP_DIR”) >“${FULL_LOG_FILE}” 2>&1

检查全量备份是否成功

if [ $? -eq 0 ]; then
touch ${DATE_BACKUP_DIR}/full_backup_success_flag

    # 压缩其它全量备份文件
    echo "压缩其它全量备份文件..." >>"${FULL\_LOG\_FILE}"

    old\_backup\_file=$(find "$BACKUP\_DIR" -maxdepth 1 -type d -not -name "$DATE\_STR"|grep -v "$BACKUP\_DIR"'$')
    if [ -z "${old\_backup\_file}" ]; then
            echo "暂无旧备份文件" >>"${FULL\_LOG\_FILE}"
    else
            echo "待处理旧备份文件:" >>"${FULL\_LOG\_FILE}" 
            echo "$old\_backup\_file" | xargs -I {} echo {} >>"${FULL\_LOG\_FILE}" 
            echo "压缩旧备份文件..." >>"${FULL\_LOG\_FILE}" 
            echo "$old\_backup\_file" | xargs -r -I {} sh -c 'tar -czf {}.tar.gz -C {} -P .'
            echo "压缩成功!" >>"${FULL\_LOG\_FILE}" 

            echo "删除旧备份文件..." >>"${FULL\_LOG\_FILE}" 
            echo "$old\_backup\_file" | xargs -r -I {} rm -rf {}
            echo "删除成功!" >>"${FULL\_LOG\_FILE}" 
    fi

    echo "全量备份:${DATE\_BACKUP\_DIR},成功" >>"${FULL\_LOG\_FILE}"

else
echo “全量备份: D A T E _ B A C K U P _ D I R ,失败 " > > " {DATE\_BACKUP\_DIR},失败" >>" DATE_BACKUP_DIR,失败">>"{FULL_LOG_FILE}”
fi

清理过期备份

find " B A C K U P _ D I R " − c t i m e + BACKUP\_DIR" -ctime + BACKUP_DIR"ctime+RETENTION_PERIOD -exec rm -rf {} ;

set +x


**命令解析**



> 
> `(time rsync -av --delete "$SOURCE_DIR" "$FULL_BACKUP_DIR") >"${FULL_LOG_FILE}" 2>&1`
> 
> 
> 该命令用于使用`rsync`工具进行数据同步,并将同步过程中的输出信息(包括标准输出和错误输出)重定向到指定的日志文件中。命令详细解释如下:
> 
> 
> * `time`: 这是一个Unix/Linux命令,用于测量并显示命令执行所花费的时间。
> * `rsync`: 是一个强大的文件同步工具,用于在本地或远程之间进行数据备份或同步。
> * `av`: 这是rsync的选项组合,其中:
> 	+ `a`:归档模式,相当于 `rlptgoD` 的组合,保留源文件的所有属性(如权限、时间戳、软硬链接等)并递归处理目录。
> 	+ `v`:详细输出模式,会让rsync运行时显示详细的同步信息。
> * `-delete`:这是一个rsync选项,表示在目标目录中删除那些源目录不存在的文件和目录,使得目标目录与源目录保持一致。
> * `"$SOURCE_DIR"` 和 `"$FULL_BACKUP_DIR"`:分别为源目录和目标目录,它们是变量引用,实际执行时会替换为具体的路径。
> * `> "${FULL_LOG_FILE}"`: 将命令的标准输出重定向到`${FULL_LOG_FILE}`这个文件中,即同步过程中的详细信息会被记录在这个日志文件里。
> * `2>&1`:这是将标准错误输出重定向到标准输出的语法,也就是说,任何错误信息也会被写入到`${FULL_LOG_FILE}`这个日志文件中。
> 
> 
> 综上所述,此命令的作用是:通过rsync工具以归档模式递归地同步源目录至目标目录,同时删除目标目录中源目录没有的文件,并将整个同步过程(包括详细信息和错误信息)都记录到指定的日志文件中,并且还显示了整个操作的执行时间。
> 
> 
> 


### 增量备份脚本


该脚本会基于最新的全量备份创建增量备份


`vim backup_incremental.sh`



#!/bin/bash

增量备份脚本

set -e
set -x
#获取当前脚本所在路径
CUR_PATH=$(cd dirname $0; pwd)

导入配置文件中的公共变量

source ${CUR_PATH}/backup_env.sh

获取全量备份的最新目录

LATEST_BACKUP= ( f i n d " (find " (find"{BACKUP_DIR}" -type f -name “full_backup_success_flag” -exec dirname {} ;| grep -v '_restore_temp ′ ∣ x a r g s l s − t d ∣ h e a d − n 1 ) L A T E S T _ F U L L _ B A C K U P = " ' | xargs ls -td | head -n 1) LATEST\_FULL\_BACKUP="

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值