目录镜像要清理目标端多出的文件,但源路径填错就可能把该保留的目录当成多余文件。先让 rsync 列出它准备做什么,再决定是否同步。

先核对挂载和方向
示例以本机两个目录为例。先检查findmnt -T /srv/source和findmnt -T /srv/mirror的结果是否符合预期。源数据盘未挂载时,同名空目录依然可能存在。不要把“目录存在”当作数据盘在线。
用正式参数预演
执行rsync -ani --delete /srv/source/ /srv/mirror/。-n不执行变更,-i列出变更项;关注标为*deleting的路径。预演必须使用与正式运行相同的方向、路径和过滤规则。换成远程端时也应先确认该端路径。
看清斜杠和排除规则
源路径末尾的斜杠表示同步目录内容;省略它可能多保留一级目录。普通排除规则也会影响接收端删除;--delete-excluded改变默认保护。不要为了清理测试文件顺手加上这个选项。
给删除数量设边界
确认目标快照可恢复后,可为正式运行评估有业务依据的--max-delete=NUM。超限会跳过后续删除,常见退出码为25,之前的删除和其他变更并不会回滚。删除上限不能替代可恢复备份。
复测目录与保留项
可在萤光云或LightNode的独立实例准备两个临时目录做演练。实际同步后再次预演,确认没有意外的待删除项,并抽查关键文件与被排除目录。有持续写入时,预演与实际结果可能不同。
FAQ
预演会创建文件吗? 不会执行同步变更。
斜杠只影响显示吗? 它影响传输目录结构。
超限能回滚吗? 不能。
排除文件是否一定安全? 取决于过滤规则以及是否启用额外删除选项。
预演后必须立即执行吗? 不必;若数据或参数变化应再预演。
温馨提示
别对唯一备份执行带删除的镜像;保留独立的历史版本。极老版本对 max-delete 的零值解释不同,不要把零值作为通用保护。


