Nainstalujte a používejte pv
(je k dispozici jako yum balíček pro CentOS)
http://www.ivarch.com/programs/pv.shtml
Za předpokladu, že očekávaná velikost výsledného souboru dumpfile.sql je 100 m (100 megabajtů), použití pv
by bylo následující:
mysqldump <parameters> | pv --progress --size 100m > dumpfile.sql
Výstup konzoly bude vypadat takto:
[===> ] 20%
Podívejte se na manuálovou stránku man pv
pro více možností. Můžete zobrazit přenosovou rychlost nebo kolik času uplynulo nebo kolik bajtů bylo přeneseno a další.
Pokud neznáte velikost souboru výpisu, existuje způsob, jak získat velikost databáze MySQL ze schématu table_schema - nebude to velikost souboru výpisu, ale může být dostatečně blízko pro vaše potřeby:
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;
Aktualizovat
Podle mých zkušeností je při dumpingu celého serveru MySQL skutečná nekomprimovaná velikost výpisu mysql (při použití volby mysqldump --hex-blob) zhruba mezi 75 % až 85 % živé velikosti dat MySQL získaných z information_schema. Takže pro obecné řešení bych mohl zkusit následující:
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