df 明明没满却写不进文件?是 inode 用光了

举报
yd_249372318 发表于 2026/11/05 05:09:07 2026/11/05
【摘要】 磁盘有空间却报 No space left on device,是 inode 耗尽,df -i 定位、逐层统计文件数、批量清理。

上次写了 du 和 df 对不上的问题,这次是另一个变种:df 显示磁盘还有很多空间,新建文件却报 No space left on device。这种情况查的是另一项——inode。

Linux 下每个文件要占一个 inode,小文件极多的场景(缓存碎片、邮件目录、session 文件)空间没满,inode 却先耗尽了。df -h 看不出这个问题,要 df -i 才能看到每个分区的 inode 使用率。

确认是 inode 满之后,用这个组合找元凶:

for i in /*; do echo $i $(find $i -xdev | wc -l); done

逐层统计各目录的文件数,哪层数字异常大就往哪钻。十有八九是某个缓存目录堆了几十万个小文件。

清理的时候别手软也别乱删:确认归属后批量删(find 目标目录 -type f -delete 比配对 xargs rm 快得多),删完 df -i 复查。应用该设上限的设上限(日志轮转保留份数、session 过期时间),不然过俩月又是它。

df -h 管空间,df -i 管文件个数——两把尺子都要看。

【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0)

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。