Existe-t-il sous Linux un programme capable de calculer la quantité de données qu'un programme produirait?
Par exemple, si je voudrais faire une sauvegarde de ma base de données MySQL, je le ferais habituellement
mysqldump > dumpfile.sql
Au lieu de cela, je voudrais rediriger vers, /dev/null
mais calculer combien d'espace disque aurait été utilisé, comme
mysqldump | fancy_space_calc_program
Sortie:
123456789 Bytes would have been used
Notez que la sauvegarde MySQL n'est qu'un exemple. Je suis très bien conscient de la façon dont je pourrais estimer la taille à l'avance, alors veuillez ne pas faire de commentaires à ce sujet.
linux
disk-space
fancyPants
la source
la source
Réponses:
Tiré de /programming/13418688/use-pipe-with-du-to-compute-size-of-stdin
Bien sûr, ce ne sont que les octets bruts, et n'ont rien à voir avec la taille du secteur, etc., alors prenez-le avec un grain de sel ...
la source
wc
va supprimer les données dont il n'a plus besoin dès que possible.wc
sur mon ordinateur gère facilement 40 Go de données stdin, avec seulement 8 Go de mémoire.wc -c
ne compte pas les caractères - il compte les octets.wc -m
compte les caractères. La différence la plus évidente est dans les caractères multi-octets comme dans UTF-16 ou Windows\r\n
(deux octets en ASCII, mais un caractère). Il n'a pas nécessairement besoin de beaucoup de mise en mémoire tampon la plupart du temps, mais Unicode peut avoir une quantité arbitraire d'octets pour représenter un seul caractère; pas quelque chose que vous verriez dans les données fiables, mais un vecteur de débordement de tampon possible.La commande pv est parfaite pour cela.
Je pense que ce qui précède vous donnera la bonne commande que vous voulez, il faudra peut-être un ajustement tel
pv -b | > /dev/null
que je ne peux pas le tester pour le moment-b
vous donne une valeur en octets.la source
pv
avant .. Vous apprenez quelque chose de nouveau chaque jour :)Vous pouvez l'utiliser
dd
pour cela, comme çacat /dev/zero | dd status=progress of=/dev/null bs=4M
.Cela vous fournit des données pendant et après l'exécution sur la quantité de données qui lui sont transmises, comme:
la source