このディレクトリはなぜこんなに多くのスペースを消費するのか

このディレクトリはなぜこんなに多くのスペースを消費するのか

Unix は私の母国語ではないので、ファイルシステムの概念に混乱しています。

空き容量を確認すると、次のようになります。

/$ df -kh
Filesystem            Size  Used Avail Use% Mounted on
/dev/xvda1            7.9G  7.1G  397M  95% /
none                  3.7G  120K  3.7G   1% /dev
none                  3.7G  4.0K  3.7G   1% /dev/shm
none                  3.7G   48K  3.7G   1% /var/run
none                  3.7G     0  3.7G   0% /var/lock
/dev/xvdf             100G   19G   82G  19% /db
/dev/xvdg             100G   15G   86G  15% /images
/dev/xvdb             414G  199M  393G   1% /mnt

これは、/db の下にあるすべてのファイルとディレクトリがファイルシステム xvdf 上にあり、/images の下にあるすべてのものが xvdg 上にあり、/mnt の下にあるすべてのものが xvdb 上にあることを意味します。その他はすべて xvda1 上にあります。

しかし、xvda1には7.9Gのスペースしかありません。ではなぜ

/$ sudo du -sh var
25G     var

/var が 25G を占有していることがわかりますか? 最初は、シンボリック リンクの宛先のコンテンツをカウントしているのではないかと思いましたが、いくつかのディレクトリの下に /images ディレクトリへのシンボリック リンクがあり、そのコンテンツは 86G であるため、シンボリック リンクをたどると var は 86G を超えるはずです。

では、7.9G しかないドライブで /var が 25G を占めるのはなぜでしょうか?

ちなみに、これは Amazon の EC2 で実行されている Ubuntu インスタンスです。

答え1

これにより、あなたの問題に対する適切な答えが得られます。

du -ch --max-depth=1 -x /var

-x1つのファイルシステムのデータ使用量のみを表示し、/varディレクトリから他のファイルシステムのコンテンツをスキップします。

--max-depth=1最初のレベルのデータ使用量のみを表示します。例: /var/a /var/b など

答え2

dfの出力から、

/dev/xvdg 100G 15G 86G 15% /イメージ

/images では 15G のみが使用されました。

答え3

var他のファイル システムへのシンボリック リンクではないことを確認してください。

 /$ ls -ld var
 drwxr-xr-x 14 root root 4096 Jun 22 02:13 var

答え4

fsck不一致を修正するために実行する必要がある可能性もあります。

完全を期すために言及しただけですが、それでも他の何かの可能性が高いと思います。しばらく経ってもまだ何も見つからない場合は、これを試してみてください。

関連情報