Linux
•
•
By Victor
Inode 耗盡:磁碟明明還有空間卻無法寫入?
隱形的儲存殺手
身為維運人員,你一定遇過 df -h 顯示還有 50% 空間,但 touch 檔案卻報錯 "No space left on device"。
原因:檔案系統的 Inode (索引節點) 用光了。這通常發生在伺服器產生了數百萬個極小的暫存檔或 Session 檔 (例如 PHP 的 session 目錄或是 Postfix 的 mail queue)。
解決 SOP:
- 使用
df -i確認 Inode 使用率。 - 使用
for i in /*; do echo $i; find $i | wc -l; done(需小心效能) 或du --inodes找出哪個目錄檔案數最多。 - 刪除大量小檔案時,避免直接
rm *(會參數過長),建議用find . -type f -delete。