还原时 tar 报 unexpected EOF,包大小看着正常,解压到 60% 就断了,之前三个月的备份一次都没有校验过。第一次遇到会往复杂处想,其实漏掉的多是个小前提。
sha256sum backup-2026-11-14.tar.gz > backup-2026-11-14.sha256 sha256sum -c backup-2026-11-14.sha256
备份写完没有生成校验值,磁盘坏道或者上传中断造成的损坏没人发现。等到还原时才知道,那时候往往已经没得选。这一点先确认清楚,后面就不用反复试。
「备份完整性校验」相关的日志我一般连着看前后五分钟,单看一条报错经常判断不出是哪一步失败。把复现步骤压到三条以内,交给同事也能跑出来,才算真的定位清楚。
改动写完就同步给同事,下一个人踩同一个坑,成本还是你的。验证用真实数据走一遍,测试数据太干净,边界情况根本碰不到。
具体做法是,备份完成后立刻生成 sha256 并和包放在一起;每次备份前先校验上一份 顺便确认可读;把校验结果写进日志 失败就发告警。
改完照着核一遍,还原前跑一次校验显示 OK,人为改一个字节后校验能报 FAILED。
