トップ10のディレクトリの結果をすばやく取得する方法

トップ10のディレクトリの結果をすばやく取得する方法

サイズ9Tのディレクトリ(マウントポイント)があり、各ディレクトリ、特により多くのスペースを消費するディレクトリのサイズを取得したいと思います。これを行うには、次のコマンドを使用し、bashスクリプトの結果をtxtファイルにプッシュします。

du -hsx * | sort -rh | head -10

予想より時間がかかり、数時間経っても結果を何度も得ることができませんでした。

私はこれをWebとMobgar VPN接続で試しています。ここで改善できるものはありますか?

答え1

正確なディスク容量が必要な場合は、ディレクトリが大きいため時間がかかります。これを頻繁に実行する必要がある場合は、1日に1回実行され、このファイルを生成するcronジョブを設定することをお勧めしますdu(または要件とこれらのディレクトリが更新される頻度に応じて頻度を選択します)。

これにより、以前のスナップショットでこのファイルのソート操作をすばやく実行できます。

答え2

あなたはそれを使用することができます:
ls -ldpShR

-l長いバージョンの場合
-dのみディレクトリを表示する
-pディレクトリ名の/使用サイズによるソート
-Sは、
-h人間が読むことができることを意味し、再帰的である
-Rことを意味します

答え3

du --max-depth=1 * | sort -nr | head -n 10

このコマンドは、最大から最小までのソートされたフォルダサイズを含むリストを生成し、最初の10行を取得します(duGNU coreutilsが使用されていると仮定)。

答え4

更新されたバージョンです。

最初の読み出し速度とバッファとキャッシュサイズは、SSDとHDDによって異なります。

だから私はあなたがフォルダにアクセスできると仮定しています(参照「何度も結果が得られませんでした」、一部のフォルダではアクセス権が必要な場合があります。そうしないと、「du: '/direc/tori/ss' ディレクトリを読み込めません: 権限が拒否されました」というメッセージが表示されることがあります。

あなたの言葉によると

du -hsx * | sort -rh | head -10

h: print sizes in human readable format
s: --summarize you want the total size of directory,(you didn't ask for sub-directory, did you?)
x: you want to "skip directories on different file systems"
sort the result r: reverse and h: human numeric (you need h here because you use it there with du to distigush K,M,G)
head -10 : get the first top 10 of the sorted list

du以外の方法はありませんか?はい、その1つはncdu(duの呪いベースのバージョン)を使用しています。

説明する:

時間確認(現地)私のシステムパフォーマンスに基づいて

GNU Bash、バージョン5.1.4

正しいディレクトリを想定し、132Gデータを持つHDD 7200rpmの場合:

1- time du -hsx * | sort -rh | head -10
real    0m44.978s
user    0m2.432s
sys     0m13.183s

2-時間 du -B 1 --max-length=1|sort-rh|head-10

real    0m43.823s
user    0m2.269s
sys     0m12.879s

real:ユーザー経過時間、sys:CPU処理時間。

大きなファイル(isoファイルなど)がある場合は、最初のduに表示されますが、2番目のduにはディレクトリのみが表示されます。

ヘッダーを使用しない場合:使用されたサイズ。注文ファイルとフォルダ38G、22G、20G、11G、9.6G、6.9G、5.9G、3.2G、3.2G、2.7G、781M、590M、301M、132M、12M、6.9M 3.6M ,276K,224K,25K,4.0K,4.0K,4.0K,512,0

私が使うとき私のもの(ブロックをK、M、Gに変換した後) .9MiB、。 7MiB、3.6MiB、3.5MiB、276KiB、224KiB、100KiB、25KiB、512B

ファイルは表示されません。

SSDがHDDよりはるかに高速であることを証明する必要はないようです。

ncdu 1.15.1 並べ替えなし

real    0m43.550s
user    0m2.742s
sys     0m13.604s

さらに、ncduにはリモート接続用のSSHオプションもあります。

別のシェルを使用している場合は、読んだ回答とコメントに基づいて追加情報で質問を更新してください。

ついに2つのコマンド間の時間差はそれほど大きくないと思うので、一晩の結果をテキストファイルに保存して後で並べ替えることができます。

関連情報