1. ホーム
  2. linux

[解決済み】Inodeの使用量を解放する方法は?

2022-03-27 07:03:55

質問

inodeの使用率が100%のディスクドライブがあります。 df -i コマンドを使用します)。 しかし、ファイルを大幅に削除しても、使用率は100%のままです。

では、どうするのが正解なのでしょうか?

ディスクの使用量が少ないディスク・ドライブが、どうして Inodeの使用量は、ディスクスペースの使用量が多いディスクドライブよりも多いのですか?

多くのファイルをZIPで圧縮すれば、その分、使用するファイルを減らせるのでしょうか? inode の数を教えてください。

解決方法は?

ディスクがあまりいっぱいになっていなくても、多くのinodeが使用されていることはよくあることです。

inodeはファイルに割り当てられるので、1バイトのファイルが何百個もあると、ディスクがなくなる前にinodeがなくなってしまいます。

また、複数のハードリンクを持つファイルの場合、ファイルを削除してもinode数が減らない可能性があります。やはり、inodeはファイルに属しているのです。 ではなく ディレクトリエントリです。ファイルに2つのディレクトリエントリがリンクされている場合、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_$$