Calcula quanto espaço em disco teria sido usado

26

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

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

mysqldump > dumpfile.sql

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

mysqldump | fancy_space_calc_program

Saída:

123456789 Bytes would have been used

Note que o backup do MySQL é apenas um exemplo. Eu estou muito bem ciente de como eu poderia estimar o tamanho antes da mão, então por favor, nenhum comentário sobre isso.

    
por fancyPants 29.05.2017 / 15:37

3 respostas

37

Extraído de link

You can pipe it to wc -c to count the number of bytes that goes through the pipeline.

Claro, isso é apenas o byte bruto, e não tem nada a ver com o tamanho do setor, etc, então pegue com um pouco de sal ...

    
por 29.05.2017 / 15:43
28

O comando pv é perfeito para isso.

mysqldump | pv -b > /dev/null

Acredito que o texto acima irá lhe dar o comando que você quer, pode ser necessário algum ajuste, como pv -b | > /dev/null , como não posso testar agora

-b fornece um valor em bytes.

    
por 29.05.2017 / 15:44
0

Você pode usar dd , como este 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 ele, 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
    
por 31.05.2017 / 12:02