在 /tmp/ 中轉儲了大量小檔案並重新啟動...伺服器無法恢復

在 /tmp/ 中轉儲了大量小檔案並重新啟動...伺服器無法恢復

我愚蠢地創建了一個相當深的樹(4 個文件夾深),葉文件夾包含大量小文件(超過 100 萬個文件,大小約為 200kb 到 1mb)。文件總數將超過 80 GB。這是在 Hetzner 內執行的 Ubuntu Server 14.04 盒子的 /tmp/ 目錄中建立的(與提出可能連接到它的方法相關)。

根據記憶,運行「find . | wc -l」花了 12 小時以上。

然後我需要重新啟動伺服器。這通常不是問題,因為它在過去幾週內已重新啟動多次,沒有出現問題。沒有進行任何設定更改,也沒有安裝其他軟體。

但在這種情況下,它不會重新上線。我可以 ping 盒子,但無法 ssh 或連接到任何我希望重新上線的連接埠。

我懷疑問題是在啟動 /etc/init/mounted-tmp.conf 時安裝和清除 tmp 的腳本正在努力清除文件,導致盒子卡在 init 啟動階段。

我不認為有辦法加快這個過程嗎?我知道如果我可以以某種方式停用 tmp clean 我可以使用 rsync 技巧來清理資料夾,但我不知道如何做到這一點。

答案1

找到了解決方案。

使用 hetzer 提供的救援系統啟動機器http://wiki.hetzner.de/index.php/Hetzner_Rescue-System/en

然後安裝檔案系統並使用此處的提示https://unix.stackexchange.com/questions/37329/efficiently-delete-large-directory-containing-thousands-of-files關於如何以更有效的方式刪除檔案。

重新啟動,現在一切都很好。

答案2

我看到你回答了你自己的問題,但這是我的 2 美分。

啟動進入單一使用者模式怎麼樣?您可以存取 grub 嗎?啟動時,編輯啟動參數以包含“single”選項,然後直接啟動到 root 命令提示字元。從那裡您可以清理您的文件。

相關內容