Calcule quanto espaço em disco teria sido usado

Calcule quanto espaço em disco teria sido usado

Existe no Linux um programa que pode calcular quantos dados um programa produziria?

Por exemplo, se eu quiser fazer backup do meu banco de dados MySQL, normalmente faria

mysqldump > dumpfile.sql

Em vez disso, gostaria de redirecionar, /dev/nullmas calcular quanto espaço em disco teria sido usado, como

mysqldump | fancy_space_calc_program

Saída:

123456789 Bytes would have been used

Observe que o backup do MySQL é apenas um exemplo. Estou muito ciente de como poderia estimar o tamanho de antemão, então, por favor, não faça comentários sobre isso.

Responder1

Tirado dehttps://stackoverflow.com/questions/13418688/use-pipe-with-du-to-compute-size-of-stdin

Você pode canalizá-lo para wc -ccontar o número de bytes que passam pelo pipeline.

Claro, estes são apenas os bytes brutos e não têm nada a ver com o tamanho do setor, etc., então leve isso com cautela ...

Responder2

O comando pv é perfeito para isso.

mysqldump | pv -b > /dev/null

Acho que o texto acima lhe dará o comando certo que você deseja, pode precisar de alguns ajustes, como pv -b | > /dev/nullnão posso testar agora

-bfornece um valor em bytes.

Responder3

Você pode usar ddpara isso, assim cat /dev/zero | dd status=progress of=/dev/null bs=4M.

Isso fornece alguns dados durante e após a execução sobre a quantidade de dados passados ​​para ela, como:

$ 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

informação relacionada