私はduを使用してすべてのフォルダを一覧表示し、サイズで並べ替えましたが、結果は使用されたディスク容量とまったく同じではありませんでした(dfを使用)。 20Gほど差が出るのになぜでしょうか?
[root@xxx lib]# du --max-length=1 -h /|sort-nr 310M/図書館 123M/ルート 96K/開発者 88M/等 75G/ 73G/var 30M/スビン 20M/ブート 20K/tmp 18M/lib64 16K/月 16K/紛失+発見 12K/家庭 8.0K/サーバー 8.0K/seLinux 8.0K/オプション 8.0K/その他 8.0K/メディア 7.0M/箱 1.2G/usr 0/システム 0/プロセス [root@xxx lib]# df -h マウントされた%を使用して利用可能なファイルシステムサイズを利用可能 /dev/mapper/VolGroup00-LogVol00 298G 94G 189G 34% / /dev/sda1 99M 26M 69M 28% /boot tmpfs 2.0G 0 2.0G 0% /dev/shm
答え1
測定した内容du
と異なるためです。df
man du
説明する:
du - 推定ファイルスペース使用量(...) まとめるファイルあたりのディスク使用量、ディレクトリ再帰の場合。
そしてman df
:
df - レポートファイルシステムのディスク領域使用量
ファイルシステムには、要約されていないinodeテーブル、ログなどがありますdu
。これはLinuxに限定されず、UNIXにのみ適用されます(UNIXファイルシステムにのみ適用されます)。 UNIXプロセスはすべてのジョブ(単純化しています)、つまりログファイルに書き込むジョブにファイルを使用するため、オープンファイル記述子この場合、問題によって他のdu
出力が発生しますdf
。
答え2
これインデックスノードテーブル(およびいくつかの非常に小さいもの)は使用されたスペースに含まれています。約18GBのinodeがあるようです。これはext2 / ext3 / ext4の予想範囲内にある約6%のスペースです(他のものがない場合、inodeテーブルを持たないファイルシステムはより大きなディレクトリエントリを持つことができます)。以下を実行して、inodeで使用されている正確なサイズを見つけることができますtune2fs -l /dev/mapper/VolGroup00-LogVol00
。たとえば、以下は20GBのext3ファイルシステムの1つに関連する行です。
Inode count: 2622368
Inode size: 128
このパーティションには、2622368×128 B≒320MB inodeがあります。
追加の注意:呼び出し方法du
によっては、リモートマウントやその他の非直接ディスク対応ファイルシステムでも各ファイルが使用するスペースを表示できます。du -x /
ルートファイルシステムに何が保存されているかを確認するには、実行してください。