Zainstaluj i używaj pv
(jest dostępny jako pakiet yum dla CentOS)
http://www.ivarch.com/programs/pv.shtml
Zakładając, że oczekiwany rozmiar wynikowego pliku dumpfile.sql to 100m (100 megabajtów), użycie pv
wyglądałoby następująco:
mysqldump <parameters> | pv --progress --size 100m > dumpfile.sql
Wynik konsoli będzie wyglądał następująco:
[===> ] 20%
Spójrz na stronę man man pv
więcej opcji. Możesz wyświetlić szybkość transferu, czas, jaki upłynął, liczbę przesłanych bajtów i nie tylko.
Jeśli nie znasz rozmiaru pliku zrzutu, istnieje sposób na uzyskanie rozmiaru bazy danych MySQL ze schematu table_schema - nie będzie to rozmiar pliku zrzutu, ale może być wystarczająco zbliżony do Twoich potrzeb:
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;
Aktualizacja
Z mojego doświadczenia wynika, że podczas zrzucania całego serwera MySQL, rzeczywisty nieskompresowany rozmiar zrzutu mysql (przy użyciu opcji mysqldump --hex-blob) wynosi około 75% do 85% rzeczywistego rozmiaru danych MySQL uzyskanych z information_schema. Więc dla ogólnego rozwiązania, mogę wypróbować następujące:
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