磁碟空間告警時,優先清理大檔案見效最快。本文提供**四大實戰指令組合**:精準定位大檔、秒清空日誌、批次刪除超大檔、目錄級排序找出佔空間大戶,助您在幾分鐘內釋放寶貴空間。

# 找出 /var/log 下超過 100 MB 的檔案,顯示詳細資訊
find /var/log -type f -size +100M -exec ls -lh {} \;
-type f:僅檔案,排除目錄/連結-size +100M:大於 100 MB(單位:k/M/G)-exec ls -lh {} \;:對每個結果執行 `ls -lh` 顯示人類可讀大小# 將巨大日誌清空,inode 不變、服務無需重啟 echo "" > /var/log/nginx/access.log # 或 : > /var/log/nginx/access.log # 或 truncate -s 0 /var/log/nginx/access.log
優勢: 檔案句柄不變,正在寫入的服務(Nginx、MySQL、Java 應用)**無需重啟**即可繼續寫入新日誌。
# 刪除 /var/mail 下超過 50 MB 的檔案
find /var/mail -type f -size +50M -exec rm -f {} \;
⚠️ **生產環境建議先加 `-exec ls -lh {} \;` 預覽,確認無誤後再換成 `rm`。**
# 顯示當前目錄下一級子目錄/檔案大小,按大小遞減排序,顯示前 10 du -s * | sort -nr | head -10 # 人類可讀格式 du -sh * | sort -hr | head -10
12G /var/log 8.5G /home/user/backups 3.2G /var/lib/mysql 1.1G /tmp ...
yum install ncdu # 或 apt-get install ncdu ncdu / # 互動式 TUI,鍵盤導航、刪除、刷新
視覺化呈現目錄佔用比例,支援直接在介面刪除檔案,比指令組合直觀得多。
| 檢查項目 | 指令 |
|---|---|
| 確認檔案非進程持有 | lsof /path/to/bigfile |
| 確認非資料庫/系統關鍵檔 | file /path/to/bigfile |
| 備份必要日誌 | cp /var/log/x.log /backup/ |
| 記錄清理前 df -h | df -h |
磁碟清理核心口訣:**先 `du` 找大戶,再 `find` 定大檔,日誌用 `truncate` 清空,垃圾用 `rm` 徹底刪**。配合 `ncdu` 視覺化工具,從「盲目刪檔」進化為「精準釋放空間」。