Linux 磁盘快满时:先分清是 inode 还是空间

举报
yd_235948304 发表于 2026/11/07 06:21:51 2026/11/07
【摘要】 df -h 显示还有空间,但新建文件报 No space left on device;或者反过来,空间几乎用尽,却搞不清是哪个目录在涨。云主机上这两种情况都常见。先分清是块空间问题还是 inode 耗尽,再按目录定位,通常比盲目清缓存更稳。 1. 同时看块空间和 inode两行命令先跑:df -hdf -iUse% 接近 100% 说明块空间不够;IUse% 接近 100% 说明 inod...

df -h 显示还有空间,但新建文件报 No space left on device;或者反过来,空间几乎用尽,却搞不清是哪个目录在涨。云主机上这两种情况都常见。先分清是块空间问题还是 inode 耗尽,再按目录定位,通常比盲目清缓存更稳。

1. 同时看块空间和 inode

两行命令先跑:

df -h
df -i

Use% 接近 100% 说明块空间不够;IUse% 接近 100% 说明 inode 耗尽(大量小文件)。inode 满时,即便 df -h 还有空闲,也无法创建新文件。先看哪一类到顶,再决定清大文件还是清海量小文件。

2. 找出占空间的大户

块空间紧张时,从根目录按一级汇总:

du -xhd1 / 2>/dev/null | sort -h
du -xhd1 /var /home /opt /tmp 2>/dev/null | sort -h

-x 避免跨挂载点把数据盘和系统盘混在一起。日志、容器层、包缓存、旧备份通常排在前面。确认路径后再删,不要对整盘 rm -rf。

3. inode 耗尽时怎么查

inode 满多半是海量小文件(临时目录、邮件队列、构建产物)。用:

find /var /tmp /home -xdev -type d -printf '%h\n' 2>/dev/null | sort | uniq -c | sort -nr | head

或对可疑目录统计文件数:

find /path/to/suspect -xdev -type f 2>/dev/null | wc -l

定位后按业务规则清理过期文件,而不是只扩容——扩容解决不了「持续制造小文件」的根因。

4. 清理前先确认不是挂载或权限问题

偶发「写失败」也可能是只读挂载、磁盘只读错误,或某个 bind mount 写到了预期外的位置:

mount | grep ' / '
dmesg -T | tail -50
ls -ld /path/you/write

看到 Read-only file system 或磁盘 I/O error,先修文件系统/云盘状态,再谈清理。

小结

推荐顺序:df -h 与 df -i 并行看 → 大目录 du 定位 → inode 场景再数文件 → 排除只读与磁盘错误。先定性再动手,比上来清空 /var/log 或随意扩容更安全,也更容易一次修好。

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

评论(0)

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

全部回复

上滑加载中

设置昵称

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

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

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