我所有的 inode 都到哪里去了?

我所有的 inode 都到哪里去了?

今天,我的一台 VPS 上的索引节点用完了。
我删除了一堆多余的小文件,释放了足够的索引节点以使系统再次运行:

Filesystem     Inodes IUsed IFree IUse% Mounted on
/dev/simfs       586K  529K   58K   91% /

我还编写了一个简短的命令来给出已用 inode 的数量(本质上列出所有文件及其 inode 编号,过滤掉重复项并计算结果的行数):

sudo find / -xdev -type f -printf '%i~%P\n' > files.txt
<files.txt | sort -u -t'~' -k1,1 > inodes.txt
wc -l files.txt inodes.txt
1513608 files.txt  
275320 inodes.txt

因此,看起来文件/仅占 275k inode,但df报告已使用 529k。

怎么可能?

(我什至重新启动系统以释放仍被进程锁定的任何 inode,但这根本没有改变已使用的 inode 数量。)

答案1

使用绑定安装而不是-xdev.此外,目录也使用索引节点。

mkdir /mnt/somewhere
mount -o bind / /mnt/somewhere
find /mnt/somewhere -printf '%i\n' | sort -u | wc -l

相关内容