避免誤刪檔案的12條建議

pythontab發表於2016-11-28

誤刪除檔案我想是每個程式設計師都遇到過的問題, 有的時候可能造成影響非常小,但是有時候會造成無法挽回的後果,這種例子比比皆是,大家可以自行google。 那麼今天就給大家分享一些簡單但可以有效的防止誤刪資料的小技巧:

1 操作前備份

修改或刪除資料前請務必備份,最好有異機備份,修改配置等先提交版本管理系統再發布到線上。

2 使用mv替代

刪除應使用mv命令替代rm命令,無用的檔案不要著急刪除,而是移動到回收站/tmp裡觀察一段時間。再寫個定時shell定期清理,以模擬“回收站”功能。

3 配置alias別名

可以透過設定別名等手段遮蔽rm,這樣一旦直接用到rm命令就是意識到。把rm配置成rm -i 或者 mv 之類的命令

4 讓刪除變得複雜(即精準刪除)

如果非要刪除資料,還可用find結合rm替代單純的rm,包括設定定時任務等動作執行清理。

5 必須用rm?

如果非要使用rm刪除資料,請儘量先切換目錄到待刪除資料所在的目錄。

能不用萬用字元就不用萬用字元。

例如:

[root@pythontab.com /]# cd /pythontab.com/
[root@pythontab.com /]# rm -f test1 test2

6 必須用rm和萬用字元?   

如果非要使用rm刪除並且要採用萬用字元,請按下面方法:

[root@pythontab.com /]# cd /pythontab.com/
[root@pythontab.com pythontab.com]# rm -fr *  #目標中最好不要帶有“/”,因為“/”太危險, 原因請看第8條

7 萬用字元與rm -fr的結合是極其危險的

應禁止使用類似rm -fr /pythontab.com/*命令刪除

8 rm命令中,目標路徑中的任意斜線前後如果多了空格可能會帶來災難。

[root@pythontab.com /]# rm -fr /pythontab.com/*

例如:rm -fr /pythontab.com/空格*   ###*的前不小心多了空格,會刪除當前目錄下的所有內容。

[root@pythontab.com /]# rm -fr /pythontab.com/空格*  #會把當前目錄根下全刪了。

更甚者, 如果在pythontab.com多了一個空格, 那就大悲劇啦,根目錄都刪除了...

[root@pythontab.com /]# rm -fr / pythontab.com/*  #會把根目錄全刪了,所有檔案,所有檔案,所有檔案!

9 習慣-tab補全

如果必須要rm -fr /pythontab.com/*命令刪除,最後的避免錯誤方法就是要用tab鍵去補全,不要手敲任何字元,防止誤刪。

10 不要高射炮打蚊子

如果刪除的不是目錄,就不要用rm -fr,採用最下化的方法rm -f即可,甚至重要的少量檔案,可以不用-f,以獲得確認刪除提示資訊。

11 使用&&代替cd...rm

我們常用命令

cd ${log_path}

rm -rf *

在shell指令碼中我們常用上述命令, 合併成一個語句

cd ${log_path} && rm -rf *

當前半句執行失敗的時候,後半句不再執行。更安全

12 rsync --delete 

慎用rsync --delete 


總結:

A. 刪除資料後,多數情況是可以恢復的,但會影響業務.

例如:需要停機恢復,且資料丟了,較長時間使用者訪問不了對應資料了

B. 恢復工具諸如ext3grep等。

C. 事情發生前未雨綢繆永遠比發生了在解決好得多。

D. 養成專業規範的運維習慣


相關文章