Instale e use
pv
(está disponível como um pacote yum para CentOS) http://www.ivarch.com/programs/pv.shtml
Supondo que o tamanho esperado do arquivo dumpfile.sql resultante seja 100m (100 megabytes), o uso de
pv
seria o seguinte:mysqldump <parameters> | pv --progress --size 100m > dumpfile.sql
A saída do console será semelhante a:
[===> ] 20%
Veja a página de manual
man pv
para mais opções. Você pode exibir a taxa de transferência ou quanto tempo se passou ou quantos bytes foram transferidos e muito mais. Se você não souber o tamanho do seu arquivo de despejo, existe uma maneira de obter um tamanho do banco de dados MySQL a partir do table_schema - não será o tamanho do seu arquivo de despejo, mas pode ser próximo o suficiente para suas necessidades:
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;
Atualizar
Na minha experiência, ao despejar todo o servidor MySQL, o tamanho real descompactado do despejo mysql (usando a opção mysqldump --hex-blob) é aproximadamente entre 75% a 85% do tamanho real dos dados MySQL obtidos de information_schema. Então, para uma solução geral, posso tentar o seguinte:
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