パイプで挟むことで進捗表示が出来る pv
コマンドとっても便利ですね。
しかし、パイプの順番を考えないとETAが表示されません。
例えば、gzip圧縮されたmysqldumpファイルからリストアするとします。 素直にコマンドを入力すると以下のようになると思います。
$ zcat dumpfile.gz | pv | mysql
これだと、pvコマンドはdumpfileの解凍後のサイズが分からないので、ETAを表示出来ません。
$ zcat dumpfile.gz | pv | mysql 200MB 0:00:01 [ 121MB/s] [ <=> ]
以下のように順番を変えることでETAを表示することが出来ます。
$ pv < dumpfile.gz | zcat | mysql 200MB 0:00:01 [ 140MB/s] [=========================================================================================>] 100%
おまけ
-s
オプション使用することでファイルサイズを指定することが出来るようです。
$ zcat dumpfile.gz | pv -s 209715200 | mysql 200MB 0:00:01 [ 143MB/s] [=========================================================================================>] 100%