Linux中rsync多级归档通过monthly/weekly/daily分层目录结合--link-dest硬链接复用实现省空间、可追溯的快照体系,并辅以tar压缩校验和cron自动化清理。

Linux 中用 rsync 实现多级归档,核心是把“时间维度”和“备份粒度”结合起来:用目录结构标记周期(如 monthly、weekly、daily),再用 --link-dest 复用未变文件的硬链接,避免重复存储。不是简单复制多次,而是构建可追溯、省空间、易恢复的分层快照体系。
设计分层目录结构
先规划好归档层级,例如:
- monthly/:每月1号执行全量备份,保留最近3个
- weekly/:每周日执行增量,基于最近一次 monthly 快照
- daily/:每天凌晨执行增量,基于最近一次 weekly 或 daily 快照
所有快照都放在同一父目录下(如 /backup/sys/),结构清晰,便于脚本识别和清理。
Zynq‑7000 / Zynq UltraScale+ 硬件调试技能。适用于 Xilinx Zynq(Cortex‑A9/A53 + FPGA)Linux 环境,调试 I2C、I2S、UART、GPIO 等外设。包括设备树配置、内核驱动、用户空间调试工具、交叉编译和常见问题排查,支持 PetaLinux 开发。
用 --link-dest 构建硬链接快照
每次运行 rsync 时,指定上一个快照目录为 --link-dest 参数目标,新目录中未变化的文件会以硬链接形式复用,真正新增或修改的才写入新数据。
- 假设已有
/backup/sys/monthly/20261001,要创建今日快照:rsync -a --delete --link-dest=/backup/sys/monthly/20261001 /etc/ /backup/sys/daily/20261013/ - 硬链接只在同文件系统内生效,确保源、目标、
--link-dest路径都在同一挂载点 - 首次创建某级快照(如 monthly)时,不加
--link-dest,即为真实全量
配合 tar 封装与校验
rsync 快照适合快速恢复,但长期归档建议用 tar 打包并压缩,方便离线保存、跨平台迁移和完整性校验。
- 对某个快照打包:
tar -cJf /archive/etc-20261013.tar.xz -C /backup/sys/daily/20261013 . - 生成 SHA256 校验值:
sha256sum /archive/etc-20261013.tar.xz > /archive/etc-20261013.tar.xz.sha256 - 解压时验证:
sha256sum -c /archive/etc-20261013.tar.xz.sha256
自动化与生命周期管理
用 cron 触发不同频次任务,并在脚本中加入自动清理逻辑。
- 每月1号 02:00 执行全量:
0 2 1 * * /usr/local/bin/backup-monthly.sh - 每周日 03:00 执行周增:
0 3 * * 0 /usr/local/bin/backup-weekly.sh - 每天 04:00 执行日增:
0 4 * * * /usr/local/bin/backup-daily.sh - 每个脚本末尾清理过期快照,例如 weekly 只保留最近4个,monthly 保留最近3个

















