Linux备份恢复项目教程_Rsynctar全量增量备份实战

4次阅读

rsync 与 tar 可协同实现全量 + 增量备份:每周 tar 全量打包并校验,每日 rsync 硬链接式增量快照,统一目录管理;恢复时直接解压或同步对应快照即可。

Linux 备份恢复项目教程_Rsynctar 全量增量备份实战

用 rsync + tar 做 Linux 备份,不是非得二选一——全量和增量可以配合使用,关键在设计好目录结构、时间标记和同步逻辑。rsync 负责高效同步,tar 负责归档打包,两者结合既能保留历史快照,又避免重复存储大量相同文件。

一、备份策略设计:全量 + 增量快照式存档

不推荐纯增量(如每天只备份变化文件),因为恢复时需按顺序还原多个增量包,易出错且耗时。更稳妥的做法是:

  • 每周一次全量备份:用 tar 打包并压缩,命名含日期(如 backup_full_20240601.tar.gz)
  • 每日增量备份:用 rsync 的 –link-dest 参数硬链接前次全量目录,生成“类快照”结构,实际只存差异
  • 所有备份统一存放在 /backup/ 下,按 full_YYYYMMDDinc_YYYYMMDD 分目录管理

二、全量备份脚本(tar + gzip)

执行前确保目标路径有足够空间,建议加校验和(sha256sum)并记录时间戳:

#!/bin/bash DATE=$(date +%Y%m%d) data-src="/etc /home /root /var/www" data-lazy="true" src="https://blog.sgvps.cn/wp-content/themes/wordpress-theme-puock-2.5.7/assets/img/z/load-tip.png" DST="/backup/full_${DATE}" TAR_FILE="/backup/backup_full_${DATE}.tar.gz" 

mkdir -p "$DST" tar -czf "$TAR_FILE" -C / $SRC sha256sum "$TAR_FILE" > "$TAR_FILE.sha256" echo "Full backup done: $TAR_FILE"

说明:/etc、/home 等是典型需备份的核心路径,可根据实际调整;-C / 表示从根开始相对打包,解压 时结构清晰。

三、增量备份脚本(rsync 硬链接快照)

利用 rsync 的 –link-dest 复用上一个全量目录的文件块,新目录看起来独立,实则节省空间:

#!/bin/bash DATE=$(date +%Y%m%d) FULL_DIR="/backup/full_$(date -d'last Sunday'+%Y%m%d)"  # 自动找上周日全量 INC_DIR="/backup/inc_${DATE}" 

若找不到全量基线,回退到最新全量

if [! -d "$FULL_DIR"]; then FULLDIR=$(ls -rd /backup/full* 2>/dev/null | head -n1) fi

rsync -av --delete --link-dest="$FULL_DIR" --exclude='/proc' --exclude='/sys' --exclude='/dev' --exclude='/backup' / "$INC_DIR/"

touch "$INC_DIR/.backup_timestamp" echo "Incremental backup done: $INC_DIR"

注意:–link-dest 必须指向已存在的完整目录,且与目标目录在同一分区(否则硬链接失效);排除虚拟文件系统是必须操作。

四、恢复操作:按需选择全量或增量快照

恢复不依赖脚本,直接解压或复制即可:

  • 恢复某天全量:tar -xzf /backup/backup_full_20240601.tar.gz -C /
  • 恢复某日增量快照(即模拟当日系统状态):rsync -a /backup/inc_20240605/ /(注意末尾斜杠)
  • 验证完整性:对比 sha256sum 或用 tar -tzf 检查包内文件列表

提示:生产环境建议先恢复到测试机,确认服务、权限、SELinux 上下文(如需)无误再上线。

星耀云
版权声明:本站原创文章,由 星耀云 2026-01-08发表,共计1514字。
转载说明:转载本网站任何内容,请按照转载方式正确书写本站原文地址。本站提供的一切软件、教程和内容信息仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。本站信息来自网络,版权争议与本站无关。