Installieren und verwenden Sie pv
(es ist als Yum-Paket für CentOS verfügbar)
http://www.ivarch.com/programs/pv.shtml
Unter der Annahme, dass die erwartete Größe der resultierenden dumpfile.sql-Datei 100 MB (100 Megabyte) beträgt, ist die Verwendung von pv
wäre wie folgt:
mysqldump <parameters> | pv --progress --size 100m > dumpfile.sql
Die Konsolenausgabe sieht folgendermaßen aus:
[===> ] 20%
Sehen Sie sich die Manpage man pv
an für weitere Optionen. Sie können die Übertragungsrate anzeigen, oder wie viel Zeit verstrichen ist, oder wie viele Bytes übertragen wurden und mehr.
Wenn Sie die Größe Ihrer Dump-Datei nicht kennen, gibt es eine Möglichkeit, die Größe der MySQL-Datenbank aus dem Tabellenschema abzurufen – es wird nicht die Größe Ihrer Dump-Datei sein, aber sie könnte für Ihre Bedürfnisse nahe genug sein:
SELECT table_schema AS "Database", ROUND(SUM(data_length + index_length) / 1024 / 1024, 2) AS "Size (MB)" FROM information_schema.TABLES GROUP BY table_schema;
Aktualisieren
Meiner Erfahrung nach liegt beim Dumping des gesamten MySQL-Servers die tatsächliche unkomprimierte Größe des mysql-Dumps (unter Verwendung der Option mysqldump --hex-blob) ungefähr zwischen 75 % und 85 % der Live-Größe der MySQL-Daten, die aus information_schema abgerufen werden. Für eine allgemeine Lösung könnte ich also Folgendes versuchen:
SIZE_BYTES=$(mysql --skip-column-names <parameters> <<< 'SELECT ROUND(SUM(data_length) * 0.8) AS "size_bytes" FROM information_schema.TABLES;')
mysqldump <parameters> --hex-blob | pv --progress --size $SIZE_BYTES > dumpfile.sql