我正在編寫一個 bash 腳本來自動刪除某些內容。我用了程式碼rm -rf $路徑/*
意外地,我在沒有傳遞路徑變數的情況下運行了腳本,並且由於路徑變數為 null ,因此執行的命令是rm -rf /* 作為 sudo,現在我的伺服器上的所有內容都被刪除,該伺服器託管著超過 150 個網站,我有 1 週前的備份。 Linux 如此之大,它必須有一些解決方法來解決這種情況。
答案1
這沒有捷徑可走。 Linux 是如此強大,因為它可以讓您做任何事情,包括刪除所有內容之類的愚蠢事情。
你很幸運,因為你有備份。下一個任務是安裝新伺服器並從備份中還原資料。雖然可以嘗試使用資料復原軟體來恢復一些數據,但備份上的資料具有更好的完整性。但是,如果您可能需要舊安裝中的一些數據,則不應重複使用同一磁碟,而應購買新磁碟。
這會影響您的業務,因此與客戶的明智溝通至關重要。不要試圖掩蓋任何事情。誠實地說,由於人為錯誤,將會出現一些停機時間,並告訴他們不必擔心,因為您有備份。當然,如果是昨晚的就更好了。事件發生後,您可以修改備份計畫。
另外,在編寫腳本時,請始終在將變數傳遞給rm -rf
.您還可能存在其他錯誤導致$path
相同的結果,例如rm -rf /some/directory /*
,如果變數有尾部空格。
答案2
如果您沒有進一步接觸任何東西,那麼很有可能使用 testdisc/photorec 恢復大量數據,但這並不好笑。確保不要弄亂您刪除檔案的硬碟,因為每當您向光碟寫入內容時,舊資料都會被覆蓋。 rm 命令通常只是刪除檔案在磁碟機上的位置訊息,例如刪除一本書的目錄並保持頁面不變。因此,您以前的文件現在是系統的可用空間。
因此,請單獨安裝它以進行恢復,並且不要在上面寫字。您可以透過以下方式恢復大量文件照片記錄/測試光碟。不要被 photorec 這個名字迷惑了,它實際上可以恢復一大堆文件類型,而不僅僅是照片。但在許多情況下,只有資料恢復,而檔案名稱遺失。所以你必須要有創意。
你可以看一些例子這裡。