索引节点使用过多

索引节点使用过多

我正在使用 Ubuntu 14.x,最近尝试使用某种磁盘已满消息创建文件失败。

我有超过 2GB 的空间,这是不可能的,但我听说如果 inode 已满,它可能会导致。

我不是熟练的 Linux 用户,所以我不知道如何删除它们。首先,我以 root 身份输入上面的命令来查看使用了多少个 inode:

$ df -i -h
Filesystem     Inodes IUsed IFree IUse% Mounted on
udev             248K   414  248K    1% /dev
tmpfs            250K   467  250K    1% /run
/dev/xvda1       512K  512K     0  100% /

是的,这是100%。然后我找到了显示当前系统使用了多少 inode 的命令:

#  for i in /*; do echo $i; find $i |wc -l; done

它打印出这个:

/bin
172
/boot
353
/dev
416
/etc
1971
/home
21808
/lib
17720
/proc
43272
/sys
36453
/tmp
5134
/usr
423458
/var
10117
...

所以我删除了 /home/dev 中的一些文件,并且得到了一些空闲的索引节点,但不多:

Filesystem     Inodes IUsed IFree IUse% Mounted on
/dev/xvda1       512K  464K   49K   91% /

另外,当我重新安装我需要的文件时,它会再次占用inode,所以这实际上没有解决。

我看到 /usr 目录几乎占用了 inodes: 423458,但我不知道可以删除哪些文件而不影响其他系统或程序。

如何找到“不必​​要的”索引节点来删除?任何建议将非常感激。

答案1

与我的系统相比,您在 中有很多文件/usr,因此我建议继续在那里搜索,如果您只需在命令中更改为 ,它将在任何目录中工作/**如果你没有任何东西可以与数字进行比较,那么它可能会变得很困难。这是我的子目录中的文件数/usr

bin 2397
games 32
include 4607
lib 27379
local 34
sbin 271
share 1
src 22971

(用 制作for i in *; do echo -n "$i "; find $i |wc -l; done

相关内容