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 ~]$