我有一个inode使用率为100%(使用df -i命令)的磁盘驱动器。但是,在实质上删除文件后,使用率仍为100%。
df -i
那么正确的方法是什么?
与磁盘空间使用量较高的磁盘驱动器相比,磁盘空间使用量较少的磁盘驱动器如何可能具有更高的Inode使用率?
如果我压缩大量文件,是否有可能减少使用的inode数量?
即使磁盘不是很满,也很容易使用大量的索引节点。
索引节点已分配给文件,因此,如果您有成千上万个文件(每个都1个字节),则在磁盘用尽之前,节点将用尽。
如果文件具有多个硬链接,则删除文件也可能不会减少inode的数量。正如我所说,inode属于文件, 而不是 目录条目。如果文件有两个链接的目录条目,则删除其中一个不会释放索引节点。
此外,您可以删除目录条目,但是,如果正在运行的进程仍打开文件,则不会释放索引节点。
我最初的建议是删除所有可以删除的文件,然后重新启动该框以确保没有使文件保持打开状态的进程。
如果您这样做仍然有问题,请告诉我们。
顺便说一句,如果您要查找包含许多文件的目录,此脚本可能会有所帮助:
#!/bin/bash # count_em - count files in all subdirectories under current directory. echo 'echo $(ls -a "$1" | wc -l) $1' >/tmp/count_em_$$ chmod 700 /tmp/count_em_$$ find . -mount -type d -print0 | xargs -0 -n1 /tmp/count_em_$$ | sort -n rm -f /tmp/count_em_$$