という素敵なツールがあります pv
# On Ubuntu/Debian system
$ sudo apt-get install pv
# On Redhat/CentOS
$ sudo yum install pv
次に、例えば、あなたはこのようにそれを使用することができます
$ zcat dbpackfile.sql.gz | pv -cN zcat | mysql -uuser -ppass dbname
最新バージョンについては、アップデート2を確認してください
ps:このブログをチェックhttp://blog.larsstrand.org/2011/12/tip-pipe-viewer.html
更新:上記のリンクが壊れているようですが、ここで同じ記事を見つけましたhttp://blog.larsstrand.no/2011/12/tip-pipe-viewer.html
更新2:FULLプログレスバーによるさらに優れたソリューション。それを行うには、2つのビルドインpvオプションを使用する必要があります。一つは、--progressプログレスバーを表示するために第二で--size伝えるためにpv、全体のファイルがどのように大規模な。
pv --progress --size UNPACKED-FILE-SIZE-IN-BYTES
..問題は.gz元のファイルサイズにあります。あなたは、そうでなければ、二度(初めてこのファイルを解凍するために貴重な時間を失うことになる、それを自己を開梱せずに解凍し、元のファイルサイズ情報を取得何とか必要pvとする第二の時間zcat)。しかし、幸いなことにgzip -l、gzipされたファイルに関する非圧縮情報を含むオプションがあります。残念ながらテーブル形式であるため、使用する前に抽出する必要があります。すべて一緒に以下に見ることができます:
gzip -l /path/to/our/database.sql.gz | sed -n 2p | awk '{print $2}'
Uff ..最後に行う必要があるのは、すべてを一緒に結合することです。
zcat /path/to/our/database.sql.gz | pv --progress --size `gzip -l %s | sed -n 2p | awk '{print $2}'` | mysql -uuser -ppass dbname
さらに良くするには、次のようにprogres NAMEを追加できます
zcat /path/to/our/database.sql.gz | pv --progress --size `gzip -l %s | sed -n 2p | awk '{print $2}'` --name ' Importing.. ' | mysql -uuser -ppass dbname
最終結果:
Importing.. : [===========================================>] 100%
更新3:すばやく使用するために、カスタム関数を作成します。
mysql_import() {
zcat $2 | pv --progress --size `gzip -l %s | sed -n 2p | awk '{print $2}'` --name ' Importing.. ' | mysql -uuser -ppass $1
}
使用法:
mysql_import dbname /path/to/our/database.sql.gz
どこに置くべきかわからない場合は、この答えを読んでください:https :
//unix.stackexchange.com/a/106606/20056
エイリアス間に関数を追加できます。したがって、たとえば~/.bash_aliasesファイルを使用できます。
pv、cpipe)はこのシナリオで機能しますか?