當前位置:
首頁 > 最新 > 「rm的詛咒」——防止rm誤操作

「rm的詛咒」——防止rm誤操作

最近又出現了一起由「rm -rf /*」引起的誤刪除故障,刪除了宿主機上的所有數據。這次的主角是IDC供應商 Kuriko,官方聲明截圖如下:

大致內容如下:

由於機房技術的rm -rf /*,導致目前宿主機上所有數據丟失,我們正在嘗試恢復原有數據以及獲取備份資料,但恢復可能較小。目前該區域所有主機處於OFFLINE中。

無獨有偶啊,大概兩個月前,GitLab的系統管理員深夜在進行資料庫維護時,使用 rm -rf 刪了300GB 生產環境數據。等到清醒過來緊急按下 ctrl + c,只有 4.5GB 保留下來。

官方說明如下:

這真是「rm的詛咒」啊,歷史總是驚人的相似,故障惡魔的詛咒總是潛伏在疲勞的工程師背後。

真的就沒有辦法破解詛咒了嗎?從事IT行業的小夥伴們,怎麼能就此屈服呢,打怪升級可是我們的日常哦,讓我們拿起手中的「武器」踏上征途吧。

作者覺得要想打破「rm的詛咒」我們可以從三個方面著手。

操作方面

1.養成良好的操作習慣

作者接觸的大多數網路工程師,在配置設備時都是狂按回車的習慣。這對於網路設備來說可能不會是個太壞的習慣,但對於主機工程師來說就是個非常不好的習慣。一旦形成肌肉記憶,發生誤操作的概率非常大。對於已經輸入等待確認執行的命令,一定要慎重。在一些網路鏈接不穩定的遠程維護環境下,輕易的回車確認也會造成意外的命令輸入。

2.「四眼原則」(4 Eyes principle)或者「雙人規則」(two man rule)

對於重要的操作要遵循四眼原則或者雙人規則,通俗的講就是一件事兩個人來干,一個人操作一個檢查,兩個人一起審核。

3.使用合適的工具

使用一個合適的易於使用的高效的運維工具,管理員經常需要同時操作多台設備,這時如果沒有個一個合適的工具進行操作,很容易出現對錯誤的主機操作的情況。另外有了好的工具也要有好的方法,比如自動日誌記錄,多主機的分組管理,不同主機或主機組不同的配色方案等,這都會減少誤操作的發生。

預防方面

1.建立回收站機制

回收站機制並不真正執行刪除操作,而是將文件移動到一個特定目錄。待文件確認不需要時手動刪除,或者設置定時清理回收站,也可以在回收站裡面的文件大小達到一定容量時執行刪除操作以騰出空間。這個機制與windows內置的回收站功能相似,目的都是提供一種誤刪除的恢復機制。

具體的腳本網上有很多,大家可以自行搜索,在這裡

2.系統根目錄保護機制

現代Linux或UNIX系統都有文件系統根目錄保護機制,如果沒有指定--no-preserve-root等類似的參數,rm命令將不能執行。

3.將重要的選項後置

將 -r -f 選項放在命令行的最後面,避免因為命令里的路徑還沒有輸入完全就誤按了回車,錯誤的命令被執行。可能有些系統語法不支持將參數放置在後面。

4.使用安全刪除工具替代rm

使用類似safe-rm這樣的工具來替代rm,並逐漸養成使用安全刪除工具的習慣,避免在任何時候都使用rm。

5.重要數據只讀掛載

對於只需要讀取許可權的重要數據或者文件系統進行只讀掛載,防止誤操作對數據的修改。

6.在腳本中注意變數的傳遞

在腳本中不要使用類似下面的方式

如果該變數為空,則將導致誤刪除。

最好在使用前進行變數的檢查是否為空。

7.避免使用容易誤操作的命令語法

刪除當前目錄下的所有文件,避免使用類似命令

rm -rf ./*

直接使用 * 即可,防止錯誤輸入 /* 或者 / * 。

盡量先進入目錄後,再刪除文件,避免使用相對路徑。

8.非root用戶運維

在日常運維中,使用可能滿足工作的最低許可權的用戶,避免使用許可權過大的用戶,這樣可以減小誤操作的影響面。

9.建立備份機制

建立完善的備份機制,不僅僅能夠從誤操作中恢復,還可以應對物理故障。如果沒有完善的備份機制也要在任何操作前備份,保證每一步操作都可回退。

恢復方面

1.應急處理

如果真的誤操作刪除某個文件或者執行了rm -rf /*命令,不要慌張。如果命令正在執行請立即停止 Ctrl+c,如果是rm -rf /*命令,他會根目錄按照字母表表的先後順序刪除。這是不要對系統進行任何操作,減小對數據損壞,如果可以立即停機,並且不要指望能夠進入以前的系統。

將文件系統或者整個硬碟的數據鏡像出來,以備恢復使用。

2.針對文件系統類型進行數據恢復

現代文件系統大多數都是日誌型文件系統,這些文件系統會記錄所有的操作。對於大多數文件系統而已,刪除操作只是標記需刪除文件,標明所在區域可寫,而且不是真正刪除數據。因此我們可以使用類似ext3grep的工具恢復相關數據。

3.從備份恢復

如果出現誤操作刪除了數據,自然第一時間考慮從備份恢復,但這裡有一個大家特別容易忽視的問題,就是備份有效性。備份工作往往做了就完了,沒有進行過恢複測試,等真到需要的時候才發現不能用或者不好用。所以一定要定期進行恢複測試,用於評估備份的有效性和恢復時間,演練恢復方案。

備份可能會是多種形態的,像傳統的文件或CDP,快照,等。


喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 雪松實驗室 的精彩文章:

TAG:雪松實驗室 |