當前位置:
首頁 > 科技 > 程序員,Linux 下如何避免從刪庫到跑路的悲劇?

程序員,Linux 下如何避免從刪庫到跑路的悲劇?

關鍵時刻,第一時間送達!

作者簡介:劉晨,網名 bisal,Oracle 技術愛好者,CSDN 和 ITPub 專家博主,擁有 Oracle 10g/11g OCP、Oracle 11g OCM、EXIN DevOps Master、SCJP 等國際認證,Oracle YEP 和 OCMU 成員,目前就職於一家央企,擔任運維經理,負責某核心系統應用運維。CSDN 博客:https://blog.csdn.net/bisal

Linux 下有些指令非常重要,或者說非常危險,rm 就是其中之一,無論跟什麼參數,需要的是謹慎的操作,以下就是個真實的教訓。

1. vi 編輯文件的時候,需要執行":w"退出,但是 w 和~的鍵位非常近,輸入":w ~"指令,於是當前路徑,創建了一個名稱"~"文件。

2. 刪除文件,執行 rm 指令:

回車下來,一直 hang,以為出現問題了,於是執行 Ctrl+C。

3. 一會在看用戶家目錄,發現原來存儲的文件,怎麼找不著了?開始以為有人誤刪除了,於是使用 last,查看歷史登錄的用戶信息,發現只有自己。

4. 使用 history 看下歷史執行的指令:

5. 此時恍然大悟,忘記了"~"的含義:

其實"~"代表了用戶的家目錄,之所以在第二步出現了 hang,因為家目錄下有文件,刪除需要時間,如果文件較小,執行 rm 可以立即看見提示:

由於~代表家目錄,因此是一個文件夾不是文件,所以直接使用 rm 提示錯誤,需要-rf 參數,此時用戶家目錄下未被刪除:

此時雖然會提示錯誤,但當前用戶家目錄下,所有的文件均已被刪除,只是因為許可權不能刪除/home/user,如果此時用的 root,我猜就可以執行。

因此可以任意執行指令 rm,是非常危險的一件事情,極有可能讓你誤操作,甚至未反應過來,有什麼方法可以避免?

一個是要建立這種意識,就是執行這種特殊指令前,不要急於回車,靜下來一兩秒,再做操作,但說起來容易,做起來難,不是一朝一夕,就能建立。

另一個是可以通過技術手段,降低執行 rm 的誤操作程度,網上有不少方法,其中一種方法,就是建立類似回收站機制。

1. 用戶家目錄下,建立隱藏文件夾.trash:

2. 創建 remove.sh 腳本,實現邏輯簡單:

3. 修改.bashrc,增加一行:

即設置一個 rm 同名 alias。

4. 此時執行 rm:

進入隱藏文件夾:

檢索當前路徑:

其實執行 rm 1,只是將文件 1 執行 mv,存儲於隱藏目錄.trash,並用時間戳改名,需要的時候可以直接恢復,實現回收站機制。

5. 當然目錄.trash,需要控制容量,一種方法,是可以寫個定時任務,要是智能一些,就可以判斷文件夾的容量,超過閾值,就執行清理操作,要是粗暴一些,可以每日定時執行清理,例如:

每日 00:00 定時執行,清空隱藏目錄.trash。

對於 Linux 下的一些重要指令,首先要有敬畏,意識上建立起謹慎的態度,其次可以使用一些技術手段,限制這些誤操作,方法可能不少,重要的是,找到符合自己的需求,達到避免誤操作的目的,這是需要積累的經驗。


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

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


請您繼續閱讀更多來自 CSDN 的精彩文章:

和 Windows 說再見!微軟 Build 大會都透露了啥?

TAG:CSDN |