Linuxで、プログラムが生成するデータ量を計算できるプログラムはありますか?
たとえば、MySQLデータベースのバックアップを取りたい場合は、通常、
mysqldump > dumpfile.sql
代わりに、/dev/null
にリダイレクトしたいのですが、次のように、使用されるディスク領域の量を計算します
mysqldump | fancy_space_calc_program
出力:
123456789 Bytes would have been used
MySQLバックアップは単なる例です。事前にどのようにサイズを見積もることができるかはよく知っているので、それについてコメントしないでください。
https://stackoverflow.com/questions/13418688/use-pipe-with-du-to-compute-size-of-stdin から取得
これを
wc -c
にパイプして、パイプラインを通過するバイト数をカウントできます。
もちろん、これは単なる生のバイトであり、セクターサイズなどとは関係ありません。
コマンドpvはこれに最適です。
mysqldump | pv -b > /dev/null
上記はあなたが望む正しいコマンドをあなたに与えると思います、私は今テストできないのでpv -b | > /dev/null
のようないくつかの調整が必要かもしれません
-b
は、バイト単位の値を示します。
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