Linux 硬碟空間不足怎麼辦?排查與清理的完整指南

在使用 Linux 的過程中,硬碟空間不夠用是一個常見的問題。如果系統磁碟空間滿了,會導致許多服務停止運作,甚至影響系統穩定性。這篇文章將介紹如何快速排查磁碟空間不足的原因,並介紹一個非常好用的工具:ncdu,幫助你有效地管理和清理磁碟空間。

1. 使用基本命令快速排查硬碟空間

首先,我們可以使用 df 命令來檢查硬碟的使用情況:

df -h

這個命令會顯示系統中每個掛載點的使用狀況,並以人類可讀的格式(GB、MB)呈現。我們可以看到哪個掛載點已經接近 100% 的使用率,從而找出需要清理的區域。

接著,可以使用 du 命令來進一步檢查具體哪個目錄佔用了大量空間:

du -sh /*

這個命令會列出根目錄下的每個目錄大小,從而讓你逐層排查問題所在。

2. 使用 ncdu 更高效地管理磁碟空間

雖然 dfdu 是非常有用的工具,但它們的輸出有時不太直觀,特別是當我們需要快速找到大型文件或目錄時。這時候,可以使用 ncdu 這個強大的工具。

ncdu 是一個基於 ncurses 的磁碟使用分析工具,它提供了一個終端界面,能夠以樹狀結構呈現磁碟使用情況。相比於 duncdu 具備以下優勢:

  • 更直觀的使用者界面,方便瀏覽大目錄。
  • 支援刪除功能,可以直接在界面中選擇並刪除不必要的檔案。
  • 支援快速導航,能夠更快地定位磁碟空間佔用的熱點。
安裝 ncdu:

在大多數 Linux 發行版中,ncdu 都可以通過包管理器直接安裝:

# Ubuntu/Debian
sudo apt install ncdu

# CentOS/Fedora
sudo yum install ncdu
使用 ncdu:

啟動 ncdu 非常簡單,只需要在想要分析的目錄中運行它:

ncdu /

這個命令會開始掃描根目錄下的所有文件和目錄,並將結果以樹狀結構呈現出來。你可以用上下箭頭來瀏覽目錄,找到佔用空間最多的文件,並按 d 直接刪除不需要的文件。


3. 清理常見的磁碟空間佔用源

除了使用 ncdu 來分析磁碟空間,還可以主動清理一些常見的佔用空間項目:

  • 刪除系統緩存和日誌文件:很多系統服務會產生大量日誌文件,可以定期清理。
sudo journalctl --vacuum-time=7d

上述命令會清理超過 7 天的系統日誌。

清理套件緩存:例如使用 APT 套件管理的系統可以清理緩存。

sudo apt clean

清理 Docker 鏡像和容器:Docker 也常常佔用大量空間,可以用以下命令進行清理:

docker system prune --all

總結

遇到 Linux 硬碟空間不足問題時,不必驚慌。使用 dfdu 排查問題,並結合 ncdu 這個直觀高效的工具來管理磁碟空間,可以快速解決問題。定期檢查系統並清理不必要的文件,能夠避免空間不足的情況再次發生。