Linuxコマンド辞典 pvコマンド(プロセス管理)

パイプを使った処理の進捗を表示する「pv」コマンドの概要と使い方を記載しています。

RHEL Fedora CentOS Vine Deblan Ubuntu Plamo

概要・使用方法

パイプを使った処理の進捗状況を表示します。コマンドの処理結果を他のコマンドに渡して処理を行うことができるパイプはとても便利な機能です。しかし、大量のデータを処理するケースなど、コマンドの実行に処理に時間がかかる場合、処理がどこまで進んでいるかわからないので、pvコマンドで可視化します。

centosなどでは標準でインストールされていないので、「yum install pv」でインストールする必要があります。epelリポジトリに収録されています。

書式

$ pv [オプション] [ファイル名]

オプション

-p
–progress
プログレスバーを表示する
-t
–timer
処理時間を表示する
-i 数値
–interval 数値
表示の更新間隔を指定する(デフォルトは1秒)
-r
–rate
転送速度を表示する
-b
–byte
処理バイト数を表示する
-L 速度
–rate-limit=速度
バイト/秒を指定してパイプの速度を調整する
-h 高さ
–height 高さ
表示する制限高さを指定する
-w 幅
–width 幅
表示する制限幅を指定する
-q
–quiet
進捗を表示しない。処理速度調整だけ利用する場合に使う

アーカイブを展開する時に進捗を表示する

実行結果

[suna@localhost~]$ pv test.tar | tar xv
text.img
1000MiB 0:00:19 [51.3MiB/s] [=============================================================================================================================================================================================>] 100%            
[suna@localhost~]$ 

ddコマンドで空イメージを作成する際に進捗を表示する

実行結果

[suna@localhost ~]$ dd if=/dev/zero bs=1024 count=1024000 | pv -w 80 | dd of=text.img
1024000+0 records in3MiB/s] [          <=>                                     ]
1024000+0 records out
1000MiB 0:00:11 [89.5MiB/s] [           <=>                                    ]
1048576000 bytes (1.0 GB) copied, 11.3746 s, 92.2 MB/s
2048000+0 records in
2048000+0 records out
1048576000 bytes (1.0 GB) copied, 11.4685 s, 91.4 MB/s
[suna@localhost ~]$ 

パイプの処理速度を調整する

ddのパイプを50MB/secで処理させる

実行結果

[suna@localhost ~]$ dd if=/dev/zero bs=1024 count=1024000 | pv -w 80 --rate-limit 50m | dd of=text.img
1024000+0 records in3MiB/s] [                  <=>                             ]
1024000+0 records out
1048576000 bytes (1.0 GB) copied, 20.0051 s, 52.4 MB/s
1000MiB 0:00:20 [  50MiB/s] [                   <=>                            ]
2048000+0 records in
2048000+0 records out
1048576000 bytes (1.0 GB) copied, 20.0066 s, 52.4 MB/s
[suna@localhost ~]$