Linux df/du 檢查磁碟與檔案空間使用量
當 Linux 伺服器發出「硬碟空間不足」的警報時,你需要這兩個指令來找出兇手。
- df:從「檔案系統 (File System)」的角度,看整體剩餘空間。
- du:從「檔案 (File)」的角度,計算佔用空間。
df:檢查磁碟剩餘空間
直接執行 df 看到的數字單位是 1K-blocks,很難看懂。
務必加上 -h (human-readable)。
df -h
輸出範例:
Filesystem Size Used Avail Use% Mounted on
/dev/sda1 50G 45G 5.0G 90% /
tmpfs 4.0G 0 4.0G 0% /run/user/1000
看 Mounted on 為 / (根目錄) 的那一行,Use% 達到了 90%,代表快滿了!
du:檢查目錄佔用大小
知道快滿了,那是誰佔用了空間?這時候要用 du。
同樣建議搭配 -h。
1. 檢查目前目錄的總大小 (-s)
-s (summarize) 代表只顯示總計,不要列出每一個子檔案。
# 檢查目前目錄佔了多大
du -sh .
輸出:4.2G .
2. 找出哪個子目錄最大
如果你想看當前目錄下,每一個子資料夾的大小:
du -h --max-depth=1
# 或者簡寫
du -h -d 1
3. 實戰技巧:找出前 5 大的資料夾
我們可以搭配 sort 指令來排序。
因為 du -h 的單位 (K, M, G) 很難直接排序,建議用 du -k (KB單位) 或 du -m (MB單位) 來排序。
# 列出當前目錄下最大的 5 個資料夾
du -m --max-depth=1 | sort -nr | head -n 5