![我所有的 inode 都到哪里去了?](https://linux22.com/image/52151/%E6%88%91%E6%89%80%E6%9C%89%E7%9A%84%20inode%20%E9%83%BD%E5%88%B0%E5%93%AA%E9%87%8C%E5%8E%BB%E4%BA%86%EF%BC%9F.png)
今天,我的一台 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