web-dev-qa-db-ja.com

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

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

たとえば、MySQLデータベースのバックアップを取りたい場合は、通常、

mysqldump > dumpfile.sql

代わりに、/dev/nullにリダイレクトしたいのですが、次のように、使用されるディスク領域の量を計算します

mysqldump | fancy_space_calc_program

出力:

123456789 Bytes would have been used

MySQLバックアップは単なる例です。事前にどのようにサイズを見積もることができるかはよく知っているので、それについてコメントしないでください。

25
fancyPants

https://stackoverflow.com/questions/13418688/use-pipe-with-du-to-compute-size-of-stdin から取得

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

もちろん、これは単なる生のバイトであり、セクターサイズなどとは関係ありません。

37
Magnus

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

mysqldump | pv -b > /dev/null

上記はあなたが望む正しいコマンドをあなたに与えると思います、私は今テストできないのでpv -b | > /dev/nullのようないくつかの調整が必要かもしれません

-bは、バイト単位の値を示します。

28

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
0
styrofoam fly