使用 df -i 可查看inode使用情况,重点观察IUse%是否接近100%,结合 find 命令定位大量小文件目录,定期清理日志缓存并合理设置inode数量,可预防inode耗尽问题。
在Linux系统中,inode(索引节点)是文件系统中用于存储文件元信息的数据结构,包含文件权限、所有者、大小、时间戳等,但不包含文件名和数据内容。当文件系统出现“磁盘空间不足”但实际数据未满时,可能是inode耗尽导致的。因此,查看inode使用情况非常重要。
使用 df -i 查看inode使用情况
最常用且简单的方法是使用 df -i 命令:
df -i
该命令会列出系统中所有挂载文件系统的inode使用情况,输出字段包括:
- Filesystem:文件系统设备名
- Inodes:总inode数量
- IUsed:已使用inode数量
- IFree:剩余可用inode数量
- IUse%:inode使用百分比
- Mounted on:挂载点
重点关注 IUse% 列,如果接近或达到100%,即使磁盘空间还有剩余,也无法创建新文件。
查看特定分区的inode信息
如果只想查看某个挂载点(如 /home)的inode使用情况,可以指定路径:
df -i /home
这样只显示该分区的inode统计,便于快速定位问题。
结合 find 查找大量小文件的目录
inode耗尽可能由大量小文件(如日志、缓存、会话文件)引起。可通过以下命令查找指定目录下文件数量最多的子目录:
find /path/to/directory -xdev -type f | cut -d”/” -f2 | sort | uniq -c | sort -n
或统计某个目录中文件总数:
find /var/log -type f | wc -l
这有助于识别哪些目录占用了大量inode。
避免inode耗尽的建议
- 定期清理临时文件、日志、缓存目录(如 /tmp、/var/log、/var/cache)
- 监控inode使用趋势,设置告警
- 在创建文件系统时,根据用途合理设置inode数量(如使用 mkfs 的 -N 选项)
- 避免在单个目录中存放过多文件
基本上就这些。通过 df -i 快速检查inode使用情况,结合 find 分析源头,能有效预防和解决inode耗尽问题。