日本惠普公司誤刪京都大學超算系統77TB重要數據
據京都大學主頁的公報顯示,本次數據丟失事件發生在12 月14 日到12 月16 日之間,一共刪除了/LARGE0 目錄下的3400 多萬個文件,總容量大約77 TB,其中有49 TB 數據可以從備份恢復,28 TB 數據完全丟失。
具體事故的原因日本惠普也在 聲明PDF中做了詳細說明。
惠普用於超算系統的備份腳本會使用find 命令找出無用的Log 文件並刪除,最近日本惠普為了提高程序的“可讀性”對傳給find 命令的變量名做了一些修改,然後更新了系統中的腳本,但是沒考慮到Bash 會在運行過程中實時讀取腳本文件然後執行,於是尚在執行中的備份程序讀取了新腳本中的find 指令,最終導致誤刪文件。
惠普日本在“謝罪聲明”中表示對此次事件負全責,並承諾賠償和善後。
編者記: Bash 在解析Shell 腳本時,是邊解析邊執行的,並不是將腳本一次性讀入內存後執行。如果腳本在執行時,我們用新腳本覆蓋了舊腳本,而且文件的inode 沒有發生變化(比如使用`cp new.sh old.sh`,old.sh 內容變了,但inode 不會變),那麼Bash 就會解析更新後的內容並執行。