Pv - Linux でのデータの [コピー/バックアップ/圧縮] の進行状況を表示
バックアップを作成したり、Linux システム上で大きなファイルをコピー/移動したりする場合、進行中の操作の進行状況を監視することが必要になる場合があります。多くのターミナル ツールには、パイプ内でコマンドが実行されているときに進行状況情報を表示する機能がありません。
この記事では、pv – Pipe Viewer と呼ばれる重要な Linux/Unix コマンドについて説明します。
Pv は、パイプを通じて送信されるデータの進行状況を監視できるターミナルベースのツールです。 pv コマンドを使用すると、次の情報が視覚的に表示されます。
- 経過時間。
- 完了した割合には進行状況バーが含まれます。
- 現在のスループット レートを表示します。
- 転送されたデータの合計。
- ETA (推定時間)。
Linux に pv コマンドをインストールするにはどうすればよいですか?
pv コマンドは、ほとんどの Linux ディストリビューションにデフォルトではインストールされないため、以下の手順に従ってインストールできます。
RHEL ベースの Linux に pv をインストールする
まず、EPEL リポジトリをオンにして、次の yum または dnf コマンドを実行してインストールする必要があります。
yum install pv
OR
dnf install pv
Debian ベースの Linux に pv をインストールする
sudo apt-get install pv
他の Linux ディストリビューションに pv をインストールする
sudo emerge -a pv [On Gentoo Linux]
sudo apk add pv [On Alpine Linux]
sudo pacman -S pv [On Arch Linux]
sudo zypper install pv [On OpenSUSE]
Linux で pv コマンドを使用するにはどうすればよいですか?
pv は主に、進行中の操作の進行状況を監視する機能を持たない他のプログラムで使用されます。適切なオプションを使用して、2 つのプロセス間のパイプラインに配置することで、これを使用できます。
pv の標準入力は標準出力に渡され、進行状況 (出力) が標準エラーに出力されます。 Linux の cat コマンドと同様の動作をします。
pv コマンドの構文は次のとおりです。
pv file
pv options file
pv file > filename.out
pv options | command > filename.out
comand1 | pv | command2
pv で使用されるオプションは、表示スイッチ、出力修飾子、および一般オプションの 3 つのカテゴリに分類されます。
Pv 表示修飾子オプション
一部のオプションは表示修飾子の下にあります。
- 表示バーをオンにするには、
-p
オプションを使用します。 - 経過時間を表示するには、
--timer
オプションを使用します。 - 操作が完了するまでにどれくらいの時間がかかるかを推測する ETA タイマーをオンにするには、
--eta
オプションを使用します。推測は、以前の転送速度と合計データ サイズに基づいています。 - レート カウンタをオンにするには、
--rate
オプションを使用します。 - これまでに転送されたデータの総量を表示するには、
--bytes
オプションを使用します。 - 視覚的な表示ではなく、整数パーセントの進行状況情報を表示するには、
-n
オプションを使用します。これは、ダイアログ コマンドで pv を使用してダイアログ ボックスに進行状況を表示する場合に便利です。
Pv 表示修飾子オプション
一部のオプションは出力修飾子の下にあります。
- 最初のバイトが転送されるまで待機してから進行状況情報を表示するには、
--wait
オプションを使用します。 - パーセンテージと ETA を計算するときに、転送されるデータの合計量が SIZE バイトであると想定するには、
--size SIZE
オプションを使用します。 - 更新間の秒数を指定するには、
--interval SECONDS
オプションを使用します。 - 操作を強制するには、
--force
オプションを使用します。このオプションは、標準エラーが端末でない場合に pv にビジュアルを表示するように強制します。 - 一般的なオプションは、使用状況情報を表示する場合は
--help
、バージョン情報を表示する場合は --version です。
Linux での Pv コマンドと例
1. オプションが含まれていない場合、pv コマンドはデフォルトの -p
、-t
、-e
、-r
、および -b
オプション。
たとえば、opensuse.vdi ファイルを /tmp/opensuse.vdi にコピーするには、次のコマンドを実行し、スクリーンキャストで進行状況バーを確認します。
pv opensuse.vdi > /tmp/opensuse.vdi
2. /var/log/syslog ファイルから zip ファイルを作成するには、次のコマンドを実行します。
pv /var/log/syslog | zip > syslog.zip
3. 進行状況バーのみを表示しながら、/etc/hosts ファイル内の行数、ワード数、およびバイト数をカウントするには、以下のコマンドを実行します。
pv -p /etc/hosts | wc
4. tar ユーティリティを使用して、バックアップ ファイルの作成の進行状況を監視します。
tar -czf - ./Downloads/ | (pv -p --timer --rate --bytes > backup.tgz)
5. この例では、dd コマンドを使用して ISO ファイルを USB フラッシュ ドライブに書き込みます。
dd if=debian-10.11.0-amd64-DVD-1.iso | pv | dd of=/dev/sda bs=4M
6. 次のように pv と dialog ターミナル ベース ツールを併用して、ダイアログ プログレス バーを作成します。
tar -czf - ./Documents/ | (pv -n > backup.tgz) 2>&1 | dialog --gauge "Progress" 10 70
まとめ
これは、ファイルのコピー/移動/バックアップなどの操作の進行状況を監視する機能を持たないツールと一緒に使用できる優れたターミナルベースのツールです。その他のオプションについては、man pv を確認してください。 。
この記事がお役に立てば幸いです。pv コマンドの使用について追加のアイデアがある場合は、コメントを投稿してください。使用中にエラーが発生した場合は、コメントを残すこともできます。