rsync 默认是镜像同步而非备份工具,需区分同步(用–delete)与备份(禁用–delete,配合–backup或–link-dest),并正确使用-a、路径斜杠、SSH免密及–dry-run验证。

rsync 不是“开箱即用”的备份工具,它默认做的是镜像同步——源删,目标跟着删;不加额外控制,也不会留历史版本。要真正实现高效同步与可靠备份,得明确区分用途,并配对使用关键参数。
区分同步与备份:选对模式再动手
同步强调两端一致,备份强调保留历史。同一命令稍作调整,效果完全不同:
-
日常同步(镜像):用
rsync -av --delete,确保目标完全复刻源,删掉多余文件,适合配置目录、网站根目录等需强一致性场景。 -
安全备份(留痕):禁用
--delete,改用--backup --suffix=.bak或更推荐的--link-dest快照机制,避免误删,还能回溯多个时间点。
本地高效同步:注意路径斜杠和权限保留
本地操作最易出错的是路径写法和元数据丢失:
- 源路径末尾带
/(如/data/src/),表示同步内容;不带(如/data/src),会把整个src目录复制进去。 - 必须用
-a(归档模式),它自动包含递归、权限、时间戳、软链接等关键属性;单独拼-rlptgoD容易漏项。 - 若要跳过日志或临时文件,加
--exclude='*.log' --exclude='cache/',支持多次使用,也支持从文件读规则:--exclude-from=/etc/rsync-exclude.conf。
远程备份:SSH 加密 + 免密登录是基础
跨机器传输必须保障安全与自动化:
- 所有远程操作默认走 SSH,命令里不用显式写
ssh,例如:rsync -avz /local/ user@host:/remote/,其中-z自动压缩传输数据。 - 务必配置 SSH 免密登录(
ssh-copy-id),否则 cron 定时任务会卡在密码输入环节。 - 如服务器 SSH 端口非 22,用
-e "ssh -p 2222"指定,避免连接失败。
增量备份进阶:用 –link-dest 省空间又留版本
这是生产环境最实用的备份方式,每次备份生成独立目录,相同文件硬链接复用,磁盘占用接近单份大小:
- 首次备份:
rsync -a /data/ /backup/2026-06-13/ - 次日备份:
rsync -a --link-dest=/backup/2026-06-13/ /data/ /backup/2026-06-14/ - 后续只需更新
--link-dest指向上一个最新快照目录即可;删除旧快照前确认无硬链接依赖(ls -i查 inode 是否唯一)。
不复杂但容易忽略:备份前先测试命令加 --dry-run,看输出是否符合预期;每次执行后检查返回值($? 是否为 0)和日志,别让 cron 默默失败。
文章来自机圈观察员网,发布者:,转载请注明出处:https://www.jqgcy.com/shoujipingce/120775.html