在使用 Linux 的過程中,硬碟空間不夠用是一個常見的問題。如果系統磁碟空間滿了,會導致許多服務停止運作,甚至影響系統穩定性。這篇文章將介紹如何快速排查磁碟空間不足的原因,並介紹一個非常好用的工具:ncdu
,幫助你有效地管理和清理磁碟空間。
1. 使用基本命令快速排查硬碟空間
首先,我們可以使用 df
命令來檢查硬碟的使用情況:
df -h
這個命令會顯示系統中每個掛載點的使用狀況,並以人類可讀的格式(GB、MB)呈現。我們可以看到哪個掛載點已經接近 100% 的使用率,從而找出需要清理的區域。
接著,可以使用 du
命令來進一步檢查具體哪個目錄佔用了大量空間:
du -sh /*
這個命令會列出根目錄下的每個目錄大小,從而讓你逐層排查問題所在。
2. 使用 ncdu 更高效地管理磁碟空間
雖然 df
和 du
是非常有用的工具,但它們的輸出有時不太直觀,特別是當我們需要快速找到大型文件或目錄時。這時候,可以使用 ncdu
這個強大的工具。
ncdu
是一個基於 ncurses
的磁碟使用分析工具,它提供了一個終端界面,能夠以樹狀結構呈現磁碟使用情況。相比於 du
,ncdu
具備以下優勢:
- 更直觀的使用者界面,方便瀏覽大目錄。
- 支援刪除功能,可以直接在界面中選擇並刪除不必要的檔案。
- 支援快速導航,能夠更快地定位磁碟空間佔用的熱點。
安裝 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 硬碟空間不足問題時,不必驚慌。使用 df
和 du
排查問題,並結合 ncdu
這個直觀高效的工具來管理磁碟空間,可以快速解決問題。定期檢查系統並清理不必要的文件,能夠避免空間不足的情況再次發生。
《AWS CDK 完全學習手冊:打造雲端基礎架構程式碼 IaC》
第 12 屆 iT 邦幫忙鐵人賽 DevOps 組冠的《用 CDK 定 義 AWS 架構》
第 11 屆 iT 邦幫忙鐵人賽《LINE bot 好好玩 30 天玩轉 LINE API》
一個熱愛分享的雲端工程師!