誤刪除文件我想是每個程序員都遇到過的問題, 有的時候可能造成影響非常小,但是有時候會造成無法挽回的后果,這種例子比比皆是,大家可以自行google。 那么今天就給大家分享一些簡單但可以有效的防止誤刪數據的小技巧:
1 操作前備份
修改或刪除數據前請務必備份,最好有異機備份,修改配置等先提交版本管理系統再發布到線上。
2 使用mv替代
刪除應使用mv命令替代rm命令,無用的文件不要著急刪除,而是移動到回收站/tmp里觀察一段時間。再寫個定時shell定期清理,以模擬“回收站”功能。
3 配置alias別名
可以通過設置別名等手段屏蔽rm,這樣一旦直接用到rm命令就是意識到。把rm配置成rm -i 或者 mv 之類的命令
4 讓刪除變得復雜(即精準刪除)
如果非要刪除數據,還可用find結合rm替代單純的rm,包括設定定時任務等動作執行清理。
5 必須用rm?
如果非要使用rm刪除數據,請盡量先切換目錄到待刪除數據所在的目錄。
能不用通配符就不用通配符。
例如:
1
2
|
[[email protected] /]# cd /pythontab.com/
[[email protected] /]# rm -f test1 test2
|
6 必須用rm和通配符?
如果非要使用rm刪除并且要采用通配符,請按下面方法:
1
2
|
[[email protected] /]# cd /pythontab.com/
[[email protected] pythontab.com]# rm -fr * #目標中最好不要帶有“/”,因為“/”太危險, 原因請看第8條
|
7 通配符與rm -fr的結合是極其危險的
應禁止使用類似rm -fr /pythontab.com/*命令刪除
8 rm命令中,目標路徑中的任意斜線前后如果多了空格可能會帶來災難。
1
|
[[email protected] /]# rm -fr /pythontab.com/*
|
例如:rm -fr /pythontab.com/空格* ###*的前不小心多了空格,會刪除當前目錄下的所有內容。
1
|
[[email protected] /]# rm -fr /pythontab.com/空格* #會把當前目錄根下全刪了。
|
更甚者, 如果在pythontab.com多了一個空格, 那就大悲劇啦,根目錄都刪除了...
1
|
[[email protected] /]# 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. 養成專業規范的運維習慣
發表評論