使用されたディスク容量を計算する

使用されたディスク容量を計算する

Linux には、プログラムが生成するデータの量を計算できるプログラムはありますか?

たとえば、MySQLデータベースのバックアップを取りたい場合、通常は次のようにします。

mysqldump > dumpfile.sql

代わりに、次のようにリダイレクトして/dev/null、ディスク容量がどれだけ使用されるかを計算します。

mysqldump | fancy_space_calc_program

出力:

123456789 Bytes would have been used

注意: MySQL バックアップは単なる例です。事前にサイズを見積もる方法はよくわかっているので、それについてはコメントしないでください。

答え1

出典https://stackoverflow.com/questions/13418688/use-pipe-with-du-to-compute-size-of-stdin

wc -cパイプを使用して、パイプラインを通過するバイト数をカウントできます。

もちろん、これは単なる生のバイトであり、セクター サイズなどとは関係がないので、あまり信じないでください...

答え2

コマンド pv はこれに最適です。

mysqldump | pv -b > /dev/null

上記で適切なコマンドが提供されると思いますが、pv -b | > /dev/null今はテストできないので調整が必要になるかもしれません。

-bバイト単位で値を返します。

答え3

dd以下のように使えますcat /dev/zero | dd status=progress of=/dev/null bs=4M

これにより、実行中および実行後に渡されたデータの量に関する次のようなデータが提供されます。

$ cat /dev/zero | dd status=progress of=/dev/null                                                                                                                              
5371334656 bytes (5.4 GB, 5.0 GiB) copied, 4 s, 1.3 GB/s^C # this is progress data
12271136+0 records in #summary
12271135+0 records out #summary
6282821120 bytes (6.3 GB, 5.9 GiB) copied, 4.66683 s, 1.3 GB/s #summary

関連情報