×

文章
2024.03.21

inode 用尽,df -h 还显示有空间

1 分钟读完 1611 次阅读 Linux Linux inode 运维

站点图片上传失败,磁盘 df -h 还剩 40%。df -i 才看见 inode 100%。小文件把编号用光了,空间还在。

从哪来的

验证码和编辑器临时目录按天扔文件,没有人回收。几年下来,几百万个几 KB 的文件。目录本身 ls 都费劲。

df -i
find /tmp/upload -type f | wc -l
ls -U /tmp/upload | head

ls -U 不排序,目录巨大时比默认 ls 友善一点。删文件用 find,不要把数百万文件一次扩到 shell。

find /tmp/upload -type f -mtime +7 -delete

以后

  • 临时文件按天分子目录,到期删整目录。
  • 上传成功立刻挪走,失败的用 cron 清。
  • 监控同时看空间和 inode,只看百分比会漏。

这事不玄。就是小文件多了,编号先于容量用完。