Linux 空間清理神器 ncdu
身為一個現代工程師,一定是要使用 AI 協助開發的,但上週使用到一半突然 AI 就卡住了,檢查是因為回傳的資料沒辦法 json parse。排查後發現原來是我的硬碟空間滿了 “Disk Usage: 100%” 的警報。
於是我使用了 df -h 想找出是誰吃光了我的硬碟時,看到的不是熟悉的掛載點,而是一個讓人困惑的路徑:/dev/mapper/ubuntu--vg-ubuntu--lv。而且沒辦法再往裡面挖檔案,因為它是一個 Block Device。瞬間我傻了…這到底是什麼?我的空間都去哪了?
用這篇文章來分享 AI 推薦給我的工具:ncdu,真的超方便!
讓我相見恨晚的神器
以前遇到空間不足,我總是傻傻地用 df + du -h 一層一層慢慢找。這種感覺就像是在大海撈針,撈到一半還會忘記剛剛哪個資料夾最大。
為什麼必須分享
它就像是終端機裡的檔案總管。執行 sudo ncdu -x / 後,它直接幫我把所有資料夾按大小排好隊,還附送直方圖。
我可以按 Enter 直接鑽進去 /var,發現原來是 /var/log 爆了;再鑽進去,揪出是那該死的 Nginx error log。如果確認是垃圾檔案,按個 d 就能直接刪除,不需要跳出去按刪除後再進來繼續找,操作滑順度滿分。
如果你只有 Command Line 可以使用,強烈建議你裝起來:
sudo apt-get install ncdu
不能安裝套件怎麼辦?
總有些時候,你啥工具都沒辦法安裝,連 apt-get 都不讓跑的時候,那麼只能回歸原始,用這行指令來土法煉鋼:
sudo du -h --max-depth=1 / | sort -hr | head -n 10
Docker 隱藏的垃圾王
這次排查中,我還發現另一個常常被忽略的隱形垃圾王:Docker。
身為容器化擁護者,我卻常常忘了清垃圾。當我下了 docker system df,才發現那些已經停止的容器和沒人用的 dangling images 居然佔了快 20GB。
這時候,我有個大絕招(但在按 Enter 前我總是會手抖一下):
docker system prune -a
這指令會把所有沒在跑的容器和沒用到的映像檔一次清空。按下去的瞬間,看到噴出來的一堆 “Deleted…” 訊息,還有硬碟空間釋放出來的數字,就跟電量恐懼正一樣瞬間被治癒了。
結語
以前面對滿載的硬碟,我只會瘋狂地刪 log、清 docker;現在有了 ncdu 這神器,加上對 LVM 的這一點認識,我終於能從容地掌控伺服器的每一吋空間。還得是 AI 呀!




