Watch at Ease看见世界,读懂生活。

科技 · 实用指南

rsync 提示“file has vanished”?忽略退出码 24 前先证明源端变动

保留全部消失路径,确认由哪个进程创建或删除,再对同一源或稳定快照复跑;只有明确的临时文件策略才可把 24 降级。

原创示意图:展示 rsync 退出码 24 的捕获、分类、复现与决策阶段。
原创示意图:在判定退出码 24 无害前,先保留消失路径证据账本。 Watch at Ease

退出码 24 的含义很具体:源文件在传输期间消失,rsync 因而只完成部分传输。实时目录里这可能正常,但这个数字不能证明缺失路径无关紧要。

安全顺序是先留证、再定策略:保存 stderr 与退出状态,分类路径,对同一源或时间点稳定源复跑,然后决定修复、排除,或仅对 24 做窄幅降级。

过滤前先保存本次运行

让现有任务把 stderr 写入带日期日志,并立即保存 shell 状态。记录命令、源根、目标、两端版本,以及源是本地、NFS、daemon 模块还是快照。不要先接 grep;若包装器未正确处理,管道可能覆盖 rsync 状态。

把每条“file has vanished”路径另存清单,但保留原日志。统计并按父目录分组:一个轮换锁文件、数百个用户文档和整棵 NFS 子树不能使用同一处置。

按所有者与价值分类路径

确认哪个进程创建、重命名或删除路径,并判断它是权威数据、可重建缓存、临时锁、收件队列还是未知。“.lock”只是线索,不是证据;必须写明应用为何允许丢弃。

复跑后检查普通文件是否仍在源端。若大量稳定路径在固定时间后消失,先核挂载、权限、源身份和远端服务健康,再动排除规则。

用稳定边界复跑

在可行范围内让源安静并复跑同一命令。重要路径重复出现时,不再视为随机。对持续变化的文件系统,使用适当的时间点快照或应用一致性导出。

文件系统快照保留块级时间点,但应用可能仍需 flush、dump 或专用快照。监控容量;Red Hat 文档说明写时复制快照写满会失效。快照本身也不是独立备份。

在修复、排除与窄包装之间选择

重要或未知路径消失时修复源路径、挂载或应用流程。只有内容明确可重建且排除已记录,才排除目录;数据库、邮件和任务队列优先使用应用支持的导出或不可变交接目录。

官方 FAQ 的包装器只把 24 改为 0,并保留其他状态。只有路径审计证明剩余集合符合策略时才用;不要把全部非零状态都变成功,也不要删日志证据。

用两遍验收收口

最终任务跑两遍:正常排程一次,稳定源或快照一次。记录传输总量、消失路径、退出状态及实际采用的目标验证。临时路径应数量少、名称类别明确且稳定。

验收规则要写死:0 通过;24 只有在清单完整、全属批准类别且无其他诊断时通过;未知路径、重复普通数据、坏快照、不可访问挂载或其他错误仍判失败。

原创示意图:判断何时可以或不可以把 rsync 退出码 24 映射为成功。
原创示意图:未知或反复出现的路径仍判备份失败;只有已批准的临时类别才可降级 24。 Watch at Ease