mk-mode BLOG

このブログは自作の自宅サーバに構築した Debian GNU/Linux で運用しています。
PC・サーバ構築等の話題を中心に公開しております。(クローンサイト: GitHub Pages

ブログ開設日2009-01-05
サーバ連続稼働時間
Reading...
Page View 合計
Reading...
今日
Reading...
昨日
Reading...

Linux - pv コマンドで処理進捗状況表示!

[ pc_tips ] [ Linux ]

こんばんは。

Linux で何か時間のかかる処理を実行中に、処理の進行状況や処理終了までの大まなか残り時間を知りたいことがあります。

以下、 pv コマンド使用してプログレバーを表示させる方法についての備忘録です。("pv" は Pipe Viewer の略)

ちなみに、当方が pv コマンドを導入した主な理由は、 MariaDB(MySQL) の大容量ダンプファイルをインポート(リストア)する際に進捗状況を知りたかったからです。

0. 前提条件

  • Debian 8.1 Jessie での作業を想定。
    (他バージョンも同様。他ディストリビューションもインストール方法以外は同様)

1. pv コマンドのインストール

1
# apt-get install pv

2. 使用方法

pv コマンドには cat コマンドのような機能があることに留意)

以下は、テキストファイルを gzip 圧縮する例。
gzip -c hoge.txt.gz | pv > /dev/null でも gzip 圧縮は可能だが、テキストファイルの容量が取得できないため処理終了までの残り時間は分からない)

1
2
# pv hoge.txt | gzip > hoge.txt.gz
5.53MiB 0:00:01 [5.19MiB/s] [=====>                  ] 28% ETA 0:00:02

以下は、テキストファイルの取得と gzip 圧縮の2処理に名前を付けて同時に監視する例。

1
2
3
# pv -cN source hoge.text | gzip | pv -cN gzip > hoge.txt.gz
   source: 7.41MiB 0:00:02 [1.39MiB/s] [===>         ] 37% ETA 0:00:03
     gzip:  320KiB 0:00:02 [ 153KiB/s] [ <=>                         ]

以下は、 MariaDB や MySQL のダンプファイルをインポート(リストア)する例。

1
# pv hoge.dump | mysql -u root -p db_name

また、データ量が分かっているのなら pv -s 1024m のように指定することも可能。
その他各種オプションについては man pv で確認可能。

参考サイト


これで、時間がかかる処理も終了時間の見当が付くようになります。

以上。

Comments