du -csh /
上記の計算には膨大な時間がかかりますが、オーバーヘッドが少なく精度の低い結果を確認する方法はありますか?
[〜#〜]更新[〜#〜]
私が知りたいのは、特定のディレクトリの下の合計サイズです。
より最適化されたバージョンdu
に関しては、私はそれを知りません。頭に浮かぶのは:
stat -c '%h'
)-2。これらすべての中で、クォータと専用パーティションのオプションがおそらく最も簡単で最も効率的です。
問題は、「du」がサブツリー内のすべてのオブジェクトを列挙する必要があることです。これはメタデータを多用する操作であり、ほとんどのLinuxファイルシステムでは時間がかかります。一部のファイルシステム、NTFS、NovellのNSSは、次のようなディレクトリサイズを追跡する機能を備えていますメタデータ内これにより、この操作が大幅に高速化されます。一般に、ファイルシステムが何らかの種類のディレクトリクォータをサポートしている場合、強制のためにこのデータを内部で追跡する必要があります。サイズ変更はすべて、ディレクトリツリーからクォータポイント(NTFS)またはすべてのディレクトリ(NSS)にレプリケートされます。 )発生した場合、ディレクトリツリーのサイズを取得するのは非常に高速です。
残念ながら、du runを高速化する方法はなく、回避策があります。
du -h --max-depth=1
現在の作業ディレクトリからのサイズを人間のKB/MB/GB形式で示します。
標準ツールを使用すると、合計サイズを知りたいときはいつでも、ディレクトリ内のすべてのファイルのサイズを取得する必要があります。それを行うためのおそらくより効率的な方法は、ディレクトリの現在のサイズを追跡する「ディレクトリサイズモニター」を持つことです。 (私が知っている)そのようなものはありませんが、inotify
を使用して実装できます。おそらくbash(およびinotify-tools
)ですが、おそらくpythonやpyinotifyなどを使用できます。
また、duの-xオプションを検討してください。
du -xh / --max-depth=1
ルートパーティションのディスク使用量の概要のみが表示され、/ proc、/ sys、/ devなどを合計しようとはしません...
ルートファイルシステムのみのディスク使用が必要な場合は、
df -h /
いいえ。一晩実行するように設定されたcronジョブで、テキストファイルに定期的にパイプでduを実行できますか?
Windowsで多数のファイルを含むフォルダーが使用するディスク容量を測定する場合も、同様に時間がかかることに注意してください。
df -hはトリックを行います
df -kh /
これにより、使用されて利用可能なディスク容量が表示されます。
たぶん
df -h
serverfaultが私を人間だと考えるには、短く簡潔な答えからの余分なテキストでは不十分です。
そのディレクトリの下のスペースを見つけるには、/
の代わりにそのスペースをリストします。ディレクトリfoo
およびbar
の下のスペースを見つけるには、両方をリストします。
du -csh foo bar
ファイルシステムが頻繁に変更されない場合は、dnotifyを使用してディスク使用量を計算する必要があります。