Installa e usa pv
(è disponibile come pacchetto yum per CentOS)
http://www.ivarch.com/programs/pv.shtml
Supponendo che la dimensione prevista del file dumpfile.sql risultante sia 100 m (100 megabyte), l'uso di pv
sarebbe il seguente:
mysqldump <parameters> | pv --progress --size 100m > dumpfile.sql
L'output della console sarà simile a:
[===> ] 20%
Guarda la pagina man man pv
per più opzioni. Puoi visualizzare la velocità di trasferimento, quanto tempo è trascorso, quanti byte sono stati trasferiti e altro ancora.
Se non conosci la dimensione del tuo file di dump, c'è un modo per ottenere una dimensione del database MySQL da table_schema - non sarà la dimensione del tuo file di dump, ma potrebbe essere abbastanza vicino per le tue esigenze:
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;
Aggiorna
Nella mia esperienza, durante il dump dell'intero server MySQL, la dimensione effettiva non compressa del dump mysql (usando l'opzione mysqldump --hex-blob) è all'incirca tra il 75% e l'85% della dimensione live dei dati MySQL ottenuti da information_schema. Quindi, per una soluzione generale, potrei provare quanto segue:
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