DEBUG.WIKI
V.PS:让项目靠近用户,亚太、欧洲、北美 KVM VPS
IPPeak:从目标地区访问网页,住宅代理、SEO 监测、广告验证
ZgoCloud:多地区部署,按需选节点;日本、美国、香港、德国

rsync --append-verify 跳过了大小不变的已修改文件

append-verify仍跳过等长目标,不适用于改写中的磁盘镜像。稳定源后移除追加模式,按普通选择和私有partial-dir恢复,并验收内容与可恢复性。

虚拟机磁盘或加密卷的内容已经变化,源文件修改时间也更新了,rsync --append-verify 却没有更新目标。如果两端文件大小相同,这符合追加模式的选择规则;verify 不表示它会把所有等长文件都读一遍并同步变化。

--append 和 --append-verify 用于已经确认共同前缀一致、文件只向后增长的场景。接收端文件不比发送端短时,会跳过正文传输。实际 3.1.3 的等长文件现象与正式 3.5.1 手册的规则一致,不能靠升级期待这个模式变成任意大文件的断点恢复。

verify 不改变追加模式的前提

--append-verify 在执行追加传输时,把已有部分也纳入校验。它仍采用追加模式,并不取消等长或更长目标的跳过规则。某些属性可能更新,不能因此认为内容已经重传。

日志文件若只增长且不会轮换改写,可能符合前提。会修改中间块、缩短、重建或复用文件名的磁盘镜像不符合。把 --checksum 留在带 append 的命令中,也不是可靠的“强制检查所有等长镜像”方案,应先撤掉不适用的复制模式。

先准备一致的源副本

活跃虚拟机仍在写入的磁盘文件不能仅靠多次 rsync 保证可恢复。按虚拟化或应用支持的备份流程取得稳定、可恢复的源,例如经过应用一致性处理的快照或停写后的副本,再从该副本传输。

保留源副本的时间点和恢复要求,不把一次退出码 0 当作镜像一致性的证明。已确认源文件稳定后,再检查同步方向、目标是否也在使用、目标空间以及覆盖前的恢复副本。恢复路径不应依赖把错误方向再同步一次。

用普通同步与独立部分文件恢复传输

在原任务中移除 --append、--append-verify,核对是否还有 --inplace 等会改变目标写入方式的选项。下面用本地受控目录展示预演,源是已经稳定的快照目录:

rsync -ani --no-whole-file --partial-dir=.rsync-partial \
  -- ./snapshot-source/ ./backup-target/

路径是占位值,源尾部 / 表示复制其内容。-n 只预演,-i 展示内容和属性变化;不含删除选项。本地复制通常默认整文件模式,这里显式用 --no-whole-file 选择增量方式;若保留整文件模式,部分文件不会按增量方式参与恢复。正式任务需保留原来已核实的远程传输、认证、过滤和属性契约,不能拿这条示例覆盖整份备份脚本。

--partial-dir 让未完成传输保留在独立部分文件目录,下次普通增量传输可以利用它,而非把“只追加”作为恢复策略。这个目录应只允许受信任的接收端账户写入,不使用公共可写目录;核对过滤规则没有把部分文件误当业务数据同步。

普通快速检查主要比较大小与修改时间。源时间确实改变时,普通模式可以选中等长文件;若大小与时间都一样但内容有变化,再评估 -c 的内容选择检查。它会增加两端读取开销,先限定受影响范围,具体区别见 rsync 内容与修改时间判断。

预演确认覆盖范围与属性符合要求、目标有恢复途径后,才按原部署流程去掉 -n 执行。普通传输仍会修改目标和相关元数据,部分文件恢复不是免备份覆盖。

检查内容与可恢复性

保存实际状态和日志,核对目标确实得到该稳定源的完整内容,并按镜像或业务要求检查可恢复性。再次预演没有变化可以帮助检查同一同步契约,但不是虚拟机能够启动或应用事务一致的替代证明。

若传输中断,保留属于当前恢复流程的部分文件,不先批量清理再尝试恢复。撤回选项只改变未来任务,不会还原已经被覆盖的镜像;目标恢复仍依赖原有副本。先前用追加模式留下的等长旧文件,需要本次正常同步或受控恢复实际修正,不能只改脚本就宣布内容已一致。