首页/系统/Linux 运维命令速查/场景:inode 耗尽排查(No space left on device)
本包目录(613 条)
文件与目录76 条文本处理77 条网络命令82 条进程与作业69 条
磁盘与文件系统51 条
用户与权限44 条日志与排查40 条systemd 与服务42 条包管理34 条性能与监控48 条定时任务与计划50 条

场景:inode 耗尽排查(No space left on device)

磁盘还有空间却报 no space left on device,多半是 inode 用尽:海量小文件(session、缓存、邮件队列)是元凶。

Linux 运维命令速查系统更新于 2026-10-12
场景有空间但无法创建新文件/服务写日志失败
目标定位 inode 消耗源并清理
工具链df -i → find → du --inodes

第 1 步:确认 inode 使用率

第 1 步:确认 inode 使用率
df -i
df -i /var | awk 'NR==1 || $5+0>80'

第 2 步:按目录统计文件数

第 2 步:按目录统计文件数
du --inodes -x -d1 /var | sort -n | tail
du --inodes -x -d1 /var/lib/php/sessions | sort -n | tail

第 3 步:找出小文件重灾区

第 3 步:找出小文件重灾区
find /var -xdev -type f -mtime +7 -printf '%h\n' 2>/dev/null | sort | uniq -c | sort -rn | head

第 4 步:清理(先确认业务影响)

第 4 步:清理(先确认业务影响)
find /var/lib/php/sessions -type f -mtime +2 -delete
find /var/spool/postfix/maildrop -type f -delete
ext4 的 inode 总数在格式化时已定,事后无法增加;长期海量小文件业务应在建文件系统时用 -i/-N 提高 inode 密度。

易错点

  • 把 inode 告警当容量告警处理,扩盘没用——扩的是块不是 inode(除非新建文件系统)
  • 业务高峰直接删百万小文件会瞬间打满 IO;用 nice/ionice 并分批删除

数据来源与参考

  • man 1 df
  • man 1 find
  • man 1 du(--inodes)
  • mke2fs 手册(-N/-i 参数)

相关工具

​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌