Инсталирайте и използвайте pv
(достъпен е като yum пакет за CentOS)
http://www.ivarch.com/programs/pv.shtml
Ако приемем, че очакваният размер на получения файл dumpfile.sql е 100 m (100 мегабайта), използването на pv
ще бъде както следва:
mysqldump <parameters> | pv --progress --size 100m > dumpfile.sql
Изходът на конзолата ще изглежда така:
[===> ] 20%
Вижте man страницата man pv
за повече опции. Можете да покажете скоростта на трансфер или колко време е изтекло, или колко байта са прехвърлени и др.
Ако не знаете размера на вашия дъмп файл, има начин да получите размер на базата данни MySQL от table_schema - той няма да е размерът на вашия дъмп файл, но може да е достатъчно близо за вашите нужди:
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;
Актуализиране
Според моя опит, когато изхвърлям целия MySQL сървър, действителният некомпресиран размер на дъмпа на mysql (използвайки опцията mysqldump --hex-blob) е приблизително между 75% до 85% от живия размер на MySQL данните, получени от information_schema. Така че за общо решение може да опитам следното:
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