rsync是同步工具而非备份工具:增量备份需用--link-dest保留历史快照,镜像则用--delete严格同步源目标;二者目标不同、配置不可混用。

rsync 本身不是“备份工具”,而是同步工具。它默认做的是镜像——目标严格跟随源,删源即删备。要实现真正的增量备份(保留历史版本),必须手动加机制;要做安全镜像(只同步不误删),得谨慎用参数。两者目标不同,配置也不同。
增量备份:保留多个时间点的快照
关键在 --link-dest:用硬链接复用未变文件,每个备份目录看起来独立,实际只存差异,省空间又可回溯。
- 先创建带时间戳的备份目录,例如:
/backup/documents/2026-10-13 - 执行命令时指定上一个快照作为参考:
rsync -a --link-dest=/backup/documents/2026-10-12 /home/oneh/documents/ /backup/documents/2026-10-13/ - 首次运行前,确保
/backup/documents/2026-10-12已存在(可先用普通 rsync 做一次全量) - 配合脚本自动命名、清理旧快照(如保留最近7天),再丢进 cron 每日执行
数据镜像:保持目标与源严格一致
这是 rsync 最自然的用法,但有风险——源删,目标也删。适合部署目录、静态网站等可控场景。
Linux 安全审计工具,检查 SSH 配置、开放/监听端口、防火墙规则(ufw/iptables/nftables)、失败登录尝试、sudoers 权限...
- 基础镜像命令:
rsync -av --delete /source/ /dest/(注意源路径末尾的/) -
--delete是镜像核心:目标里有、源里没有的文件会被清除 - 加
--dry-run先预览将删哪些文件,确认无误再执行 - 远程镜像建议走 SSH:
rsync -avz --delete -e "ssh -p 2222" /local/ user@host:/remote/
避坑要点:几个极易出事的细节
很多“备份变清空”事故都源于没注意这些:
-
源路径末尾斜杠 / 决定行为:
/data/表示同步目录内容;/data表示同步 data 这个目录本身 - 别对生产源直接加 --delete,除非你确认源端管理严格、不会误删
- 远程操作务必测试免密 SSH,否则 cron 自动执行会卡住
-
日志重定向不能少:
2>&1 >> /var/log/rsync.log,方便排查失败原因
备份 vs 镜像:一句话区分
你要的是“删了还能找回”,就走 --link-dest 快照方案;你要的是“永远和源一模一样”,才用 --delete 镜像模式。混用或漏配,结果往往相反。

















