Linux防止“rm -rf /”誤刪除

說明:不解釋了,運維應該在每臺服務器都去配置這個問題以減少災難的發生

方法:
1、safe-rm

safe-rm是一個開源軟件用來替代不太安全的rm,可以在/etc/safe-rm.conf中配置路徑黑名單,定義哪些不能被safe-rm刪除。

可以將safe-rm更名爲rm並放在$PATH中比原rm程序靠前的位置,或者使用alias設置。一些腳本中使用完全路徑/bin/rm則不會受此影響。

$ rm -rf /etc/
#提示
safe-rm: skipping /etc/
官方地址:http://freecode.com/projects/safe-rm,Ubuntu可以直接apt-get安裝,CentOS要下載源碼安裝。

2、(推薦這種方式)建立回收站機制

它並不真正執行刪除操作,而是將文件移動到一個特定目錄,可以設置定時清楚回收站,或者在回收站裏面的文件大小達到一定容量時(或者用時間做判斷)執行刪除操作以騰出空間。

可以寫個Shell腳本替換rm命令,或者在需要刪除文件的時候使用mv命令將文件移動到回收站。

1)在/home/username/目錄下新建一個目錄,命名爲:.trash
2)在/home/username/tools/目錄下,新建一個Shell文件,命名爲:remove.sh

TRASH_DIR="/home/username/.trash"

for i in $*; do
STAMP=date +%s
fileName=basename $i
mv $i TRASHDIR/TRASH_DIR/fileName.$STAMP
done

3)修改~/.bashrc, 增加一行

alias rm=“sh /home/username/tools/remove.sh”
用我們自建的remove.sh替代rm命令

4)設置/etc/crontab,定期清空垃圾箱,如:

0 0 * * * rm -rf /home/username/.trash/* #還可以設置多少天前的刪除等
每天0點清空垃圾箱

5)source ~/.bashrc使替換立即生效

3、注意腳本中rm -rf變量的使用

在腳本儘量不要使用 rm -rf $FOO/, 請使用rm -rf $FOO,另外刪除儘量不要寫相對路徑,不要帶變量。

4、根文件系統設置只讀掛載

noauto,ro

5、各種備份

可以異地遠程備份重要的數據,採用dump的增量備份機制,LVM快照,虛擬化環境中的快照、raid5等等。

找回丟失數據

如真的丟失了,可以通過工具,使用inode方式,找回丟失的數據,但需要時間和精力,所以預防在先。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章