Linux 磁盘快满时:先分清是 inode 还是空间
【摘要】 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)