跳转到主内容
新派编程网 - 新潮编程理念,全新技术课堂!

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

rsync与tar可协同实现全量+增量备份:每周tar全量打包并校验,每日rsync硬链接式增量快照,统一目录管理;恢复时直接解压或同步对应快照即可。 用 rsync + tar 做 Linux 备份,不是非得二选一——全量和增量可以配合使用,关键在设计好目录结构、时间标记和同步逻辑。rsync 负责高效同步,tar 负责归档打包,两者结合既能保留历史快照,又避免重复存储大量相同文件。 一、备份策略设计:全量 + 增量快照式存档 不推荐纯增量(如每天只备份变化文件),因为恢复时需按顺序还原多个增量包,易出错且耗时。更稳妥的做法是: 每周一次全量备份 :用 tar 打包并压缩,命名含日期(如 backup_full_20240601.tar.gz) 每日增量备份 :用 rsync 的 --link-dest 参数硬链接前次全量目录,生成“类快照”结构,实际只存差异 所有备份统一存放在 /backup/ 下,按 full_YYYYMMDD 和 inc_YYYYMMDD 分目录管理 二、全量备份脚本(tar + gzip) 执行前确保目标路径有足够空间,建议加校验和(sha256sum)并记录时间戳:
#!/bin/bash DATE=$(date +%Y%m%d) SRC="/etc /home /root /var/www" 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 复用上一个全量目录的文件块,新目录看起来独立,实则节省空间: CentOS Linux 7.9.2009 CentOS Linux 7.9.2009是传统CentOS Linux 7的最后主要版本,也是很多企业历史服务器中仍可能遇到的系统版本。它以稳定、兼容RHEL 7生态、文档丰富和软件支持广泛著称,曾长期用于Web服务、数据库、虚拟化节点和企业内部业务系统。不过CentOS Linux 7已于2024年6月30日停止维护,现在继续使用会面临安全补丁缺失风险。该版本更适合旧业务迁移、历史环境恢复或离线兼容性测试。 下载
#!/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 上下文(如需)无误再上线。

相关文章