USB|日本惠普公司误删京都大学超算系统77TB重要数据


USB|日本惠普公司误删京都大学超算系统77TB重要数据

据京都大学主页的公报显示 , 本次数据丢失事件发生在 12 月 14 日 到 12 月 16 日之间 , 一共删除了/LARGE0 目录下的 3400 多万个文件 , 总容量大约 77 TB , 其中有 49 TB 数据可以从备份恢复 , 28 TB 数据完全丢失 。

具体事故的原因日本惠普也在 声明 PDF 中做了详细说明 。
【USB|日本惠普公司误删京都大学超算系统77TB重要数据】惠普用于超算系统的备份脚本会使用 find 命令找出无用的 Log 文件并删除 , 最近日本惠普为了提高程序的“可读性”对传给 find 命令的变量名做了一些修改 , 然后更新了系统中的脚本 , 但是没考虑到 Bash 会在运行过程中实时读取脚本文件然后执行 , 于是尚在执行中的备份程序读取了新脚本中的 find 指令 , 最终导致误删文件 。
惠普日本在“谢罪声明”中表示对此次事件负全责 , 并承诺赔偿和善后 。
编者记: Bash 在解析 Shell 脚本时 , 是边解析边执行的 , 并不是将脚本一次性读入内存后执行 。 如果脚本在执行时 , 我们用新脚本覆盖了旧脚本 , 而且文件的 inode 没有发生变化(比如使用 `cp new.sh old.sh` , old.sh 内容变了 , 但 inode 不会变) , 那么 Bash 就会解析更新后的内容并执行 。