ぶていのログでぶログ

思い出したが吉日

pvコマンドを適切に配置してETAを表示する

パイプで挟むことで進捗表示が出来る pv コマンドとっても便利ですね。

blog.glidenote.com

しかし、パイプの順番を考えないと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%

f:id:buty4649:20150804122403p:plain