Cron 实现 Linux 增量备份需结合 rsync 或 tar 的增量能力,Cron 仅负责定时调度。推荐 rsync + 硬链接快照:每日同步并保留7天快照,通过 --link-dest 复用未变文件,配合符号链接和清理策略;tar 方案依赖 snapshot.snar 状态文件,适合归档但恢复复杂。配置 Cron 时需注意 PATH、权限及日志记录,并通过传输量、inode 一致性及手动还原验证备份有效性。

用 Cron 实现 Linux 增量备份,核心是结合 rsync 或 tar 的增量能力 + 定时调度,而不是靠 Cron 自身做“增量”。Cron 只负责按时运行脚本,真正的增量逻辑由备份工具完成。
选择适合的增量备份工具
Linux 下主流方案有两种,按场景选:
- rsync + 硬链接快照(推荐):每次备份生成新目录,但只存储变化文件,其余通过硬链接复用旧备份。空间省、恢复快、支持断点续传。
- tar + --newer-mtime 或 --listed-incremental:用 tar 的增量模式记录状态文件(如 snapshot.snar),后续仅打包修改过的文件。适合归档类需求,但恢复需按顺序读取多个增量包。
用 rsync 构建增量快照备份
以每日备份为例,目标是保留最近 7 天快照,每天只传新/改文件:
Linux系统管理专家,覆盖12大模块:用户权限、SSH、存储、网络、systemd、防火墙、日志监控、备份恢复、TLS证书、Ansible、容器、IaC。提供配置、验证、加固、监控、备份、自动化、故障排查、回滚闭环。关键词:useradd、sudo、sshd_config、chmod、SEL...
- 创建脚本 /usr/local/bin/backup_daily.sh,开头加
#!/bin/bash; - 用
rsync -a --delete --link-dest=/backup/last /source/ /backup/2024-06-15/同步,其中--link-dest指向上一个快照目录,自动复用未变文件; - 同步后,删除
/backup/last符号链接,再重新指向最新目录:ln -sf /backup/2024-06-15 /backup/last; - 最后清理超过 7 天的旧快照(用
find /backup -maxdepth 1 -name '????-??-??' -mtime +7 -exec rm -rf {} \;)。
配置 Cron 定时执行
让备份每天凌晨 2:30 自动运行:
- 运行
crontab -e,添加一行:30 2 * * * /usr/local/bin/backup_daily.sh >> /var/log/backup.log 2>&1; - 确保脚本有执行权限:
chmod +x /usr/local/bin/backup_daily.sh; - 注意环境变量差异:Cron 默认 PATH 较窄,建议在脚本开头显式定义 PATH,例如
PATH=/usr/local/bin:/usr/bin:/bin; - 首次运行前手动执行一次脚本,检查日志和目录结构是否符合预期。
验证与日常维护要点
增量备份容易因小疏忽失效,关键要盯住三件事:
- 每次备份后检查日志末尾是否有
sent和total size行,确认传输量明显小于全量(说明增量生效); - 定期用
ls -lai /backup/2024-*/path/to/file查看同一文件在不同快照中的 inode 是否相同(硬链接复用的标志); - 每月手动还原一次测试目录,验证任意时间点数据可恢复——这是唯一能证明备份有效的动作。

















