inode 耗尽
inode(索引节点)是 Unix 操作系统中用于存储文件和目录信息的数据结构。实际上,inode 就是元数据,因为它包含了有关文件和目录的信息。
inode 存储文件的各种属性,例如大小、所有者、所属组、访问权限、硬链接数量、文件数据块的位置,以及最后修改时间、最后访问时间等时间戳。换句话说,inode 包含了文件除名称和实际内容之外的所有信息。
创建的文件越多,需要的 inode 就越多。过多的文件(例如缓存文件或邮件队列)可能会耗尽可用的 inode,导致服务器出错,并提示磁盘空间不足,即使磁盘实际上仍有空间。要解决此问题,需要删除不需要的文件或目录。
要查看已使用和可用的 inode 数量,请通过 SSH 连接后执行以下命令:
df -hTi
命令输出中各项的含义:
- Inodes — 文件系统中 inode 的总数;
- IUsed — 已使用的 inode 数量;
- IFree — 可用的 inode 数量;
- IUse% — inode 使用率(百分比)。
要解决可用 inode 不足的问题,需要删除多余的文件或目录,从而释放 inode。
要查找包含大量文件的目录,请执行以下命令:
echo "Detailed Inode usage for: $(pwd)" ; for d in `find -maxdepth 1 -type d |cut -d\/ -f2 |grep -xv . |sort`; do c=$(find $d |wc -l) ; printf "$c\t\t- $d\n" ; done ; printf "Total: \t\t$(find $(pwd) | wc -l)\n"
可以使用 rm 命令删除不需要的文件和目录,但请务必小心,以免误删重要数据。