用md5sum生成校验文件需路径准确、格式干净,校验时须路径严格匹配且注意换行符与编码;MD5仅适用于防意外篡改,高安全场景应改用sha256sum。

直接用 md5sum 就能计算备份文件的 MD5 校验和,核心是生成可复用、路径准确、格式干净的校验文件,并在后续比对时保持执行环境一致。
生成备份文件的 MD5 清单
进入备份目录后执行:
- md5sum *.tar.gz > backup.md5 —— 适合统一后缀的压缩包
- md5sum backup-2026100*.zip > backup.md5 —— 按命名模式匹配多个备份文件
- md5sum -b file1 file2 file3 > backup.md5 —— 加 -b 强制二进制模式,避免换行符差异干扰(尤其跨平台传输后)
注意:文件名含空格或中文,必须用引号包裹,例如 md5sum "backup v2.zip" > backup.md5;否则命令会报错或漏文件。
校验时确保路径完全匹配
md5sum -c 依赖校验文件中记录的路径与当前实际路径严格一致。常见翻车点:
Linux 安全审计工具,检查 SSH 配置、开放/监听端口、防火墙规则(ufw/iptables/nftables)、失败登录尝试、sudoers 权限...
- 清单里写的是 ./data.tar.gz,但你在上层目录运行 md5sum -c backup.md5 → 报 file not found,不是 FAILED
- 正确做法:要么在备份文件所在目录执行校验,要么生成清单时用绝对路径(如 md5sum /backup/data.tar.gz > backup.md5)
- Windows 编辑过 backup.md5?先运行 dos2unix backup.md5,否则 -c 会静默失败
自动化校验与结果判断
脚本中不依赖屏幕输出,只看退出码:
- md5sum -c --status backup.md5 —— 成功返回 0,任一文件失败返回 1,读取错误返回 2
- 配合 if 判断:
if md5sum -c --status backup.md5; then echo "校验通过"; else echo "有文件被篡改或丢失"; fi - 加 --quiet 可屏蔽 OK 提示,只输出 FAILED 行,便于日志排查
关键提醒:MD5 仅防意外篡改,不防恶意攻击
MD5 已被证实存在碰撞漏洞,不能用于高安全场景:
- 普通备份完整性检查、内部传输核对,用 md5sum 完全够用
- 若备份涉及敏感数据或需防人为伪造,改用 sha256sum:
sha26sum *.tar.gz > backup.sha256 && sha256sum -c --status backup.sha256 - 校验和文件本身也要保护好——建议存放在独立位置,或配合权限限制(chmod 400 backup.md5)










