Berechnen Sie, wie viel Speicherplatz verbraucht worden wäre

Berechnen Sie, wie viel Speicherplatz verbraucht worden wäre

Gibt es unter Linux ein Programm, das berechnen kann, wie viele Daten ein Programm produzieren würde?

Wenn ich beispielsweise eine Sicherungskopie meiner MySQL-Datenbank erstellen möchte, mache ich normalerweise Folgendes:

mysqldump > dumpfile.sql

Stattdessen möchte ich umleiten, /dev/nullaber berechnen, wie viel Speicherplatz verwendet worden wäre, wie

mysqldump | fancy_space_calc_program

Ausgabe:

123456789 Bytes would have been used

Beachten Sie, dass das MySQL-Backup nur ein Beispiel ist. Ich weiß sehr gut, wie ich die Größe im Voraus abschätzen könnte, also bitte keine Kommentare dazu.

Antwort1

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

Sie können es weiterleiten, um wc -cdie Anzahl der Bytes zu zählen, die durch die Pipeline gehen.

Natürlich handelt es sich dabei nur um die Rohbytes, und sie haben nichts mit der Sektorgröße usw. zu tun, also nehmen Sie es mit Vorsicht ...

Antwort2

Der Befehl pv eignet sich hierfür optimal.

mysqldump | pv -b > /dev/null

Ich denke, das obige wird Ihnen den richtigen Befehl geben, den Sie wollen, es kann einige Anpassungen erfordern, wie pv -b | > /dev/nullich es gerade nicht testen kann

-bgibt Ihnen einen Wert in Bytes.

Antwort3

Sie können ddes beispielsweise wie folgt verwenden cat /dev/zero | dd status=progress of=/dev/null bs=4M.

Dadurch erhalten Sie während und nach der Ausführung einige Daten über die Menge der übergebenen Daten, wie etwa:

$ 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

verwandte Informationen