Calcule cuánto espacio en disco se habría utilizado

Calcule cuánto espacio en disco se habría utilizado

¿Existe en Linux un programa que pueda calcular la cantidad de datos que produciría un programa?

Por ejemplo, si quisiera hacer una copia de seguridad de mi base de datos MySQL, normalmente haría

mysqldump > dumpfile.sql

En lugar de eso, me gustaría redirigir /dev/nullpero calcular cuánto espacio en disco se habría utilizado, como

mysqldump | fancy_space_calc_program

Producción:

123456789 Bytes would have been used

Tenga en cuenta que la copia de seguridad de MySQL es sólo un ejemplo. Soy muy consciente de cómo podría estimar el tamaño de antemano, así que no hagas comentarios al respecto.

Respuesta1

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

Puede canalizarlo para wc -ccontar el número de bytes que pasan por la canalización.

Por supuesto, estos son solo los bytes sin procesar y no tienen nada que ver con el tamaño del sector, etc., así que tómalo con cautela...

Respuesta2

El comando pv es perfecto para esto.

mysqldump | pv -b > /dev/null

Creo que lo anterior le dará el comando correcto que desea, es posible que necesite algunos ajustes, como pv -b | > /dev/nulllos que no puedo probar en este momento.

-bte da un valor en bytes.

Respuesta3

Puedes usarlo dd, así cat /dev/zero | dd status=progress of=/dev/null bs=4M.

Esto le proporciona algunos datos durante y después de la ejecución sobre la cantidad de datos que se le pasan, 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

información relacionada