GNU/Linux >> Linux の 問題 >  >> Linux

「pv」コマンドを使用して(コピー/バックアップ/圧縮)データの進行状況を監視する方法

Linuxシステムで大きなファイルをコピー/移動するバックアップを作成するときは、進行中の操作の進行状況を監視することをお勧めします。多くのターミナルツールには、コマンドがパイプで実行されているときに進行状況情報を表示できる機能がありません。

また読む :Linuxでファイルをコピーしているときにプログレスバーを表示するアドバンスコピーコマンド

この記事では、 pvと呼ばれる重要なLinux/Unixコマンドを見ていきます。 。

推奨される読み物: 進行状況–(cp、mv、dd、tarなど)コマンドの進行状況を監視するための小さなツール

Pv は、パイプを介して送信されているデータの進行状況を監視できる端末ベースのツールです。 pvを使用する場合 コマンドを実行すると、次の情報が視覚的に表示されます。

  1. 経過時間。
  2. 進行状況バーを含む完了率。
  3. 現在のスループット率を表示します。
  4. 転送されたデータの合計。
  5. およびETA(推定時間)。

Linuxにpvコマンドをインストールするにはどうすればよいですか?

このコマンドは、ほとんどのLinuxディストリビューションにデフォルトでインストールされていないため、以下の手順に従ってインストールできます。

Fedora、CentOS、RHELについて

最初にEPELリポジトリをオンにしてから、次のコマンドを実行する必要があります。

# yum install pv
# dnf install pv            [On Fedora 22+ versions]
サンプル出力
Dependencies Resolved

=================================================================================
 Package       Arch              Version                   Repository       Size
=================================================================================
Installing:
 pv            x86_64            1.4.6-1.el7               epel             47 k

Transaction Summary
=================================================================================
Install  1 Package

Total download size: 47 k
Installed size: 93 k
Is this ok [y/d/N]: y
Downloading packages:
pv-1.4.6-1.el7.x86_64.rpm                                 |  47 kB  00:00:00     
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  Installing : pv-1.4.6-1.el7.x86_64                                         1/1 
  Verifying  : pv-1.4.6-1.el7.x86_64                                         1/1 

Installed:
  pv.x86_64 0:1.4.6-1.el7                                                        

Complete!

Debian、Ubuntu、LinuxMintの場合

# apt-get install pv
サンプル出力
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following NEW packages will be installed:
  pv
0 upgraded, 1 newly installed, 0 to remove and 533 not upgraded.
Need to get 33.7 kB of archives.
After this operation, 160 kB of additional disk space will be used.
Get:1 http://archive.ubuntu.com/ubuntu/ trusty/universe pv amd64 1.2.0-1 [33.7 kB]
Fetched 33.7 kB in 0s (48.9 kB/s)
Selecting previously unselected package pv.
(Reading database ... 216340 files and directories currently installed.)
Preparing to unpack .../archives/pv_1.2.0-1_amd64.deb ...
Unpacking pv (1.2.0-1) ...
Processing triggers for man-db (2.6.7.1-1ubuntu1) ...
Setting up pv (1.2.0-1) ...

GentooLinuxの場合

emergeパッケージマネージャーを使用してpvをインストールします 示されているコマンド。

# emerge --ask sys-apps/pv

FreeBSDLinuxの場合

次のように、ポートを使用してインストールできます。

# cd /usr/ports/sysutils/pv/
# make install clean

または、次のようにバイナリパッケージを追加します。

# pkg_add -r pv

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つのカテゴリに分類されます 、出力修飾子 および一般的なオプション

表示修飾子の下のいくつかのオプション。
  1. 表示バーをオンにするには、 -pを使用します オプション。
  2. 経過時間を表示するには、 –timerを使用します オプション。
  3. 操作が完了するまでにかかる時間を推測するETAタイマーをオンにするには、 –etaを使用します。 オプション。推測は、以前の転送速度と合計データサイズに基づいています。
  4. レートカウンターをオンにするには、 –rateを使用します オプション。
  5. これまでに転送されたデータの合計量を表示するには、 –bytesを使用します オプション。
  6. 視覚的な表示ではなく整数パーセントの進行状況通知を表示するには、 -nを使用します オプション。これは、 pvを使用する場合に役立ちます ダイアログコマンドを使用して、ダイアログボックスに進行状況を表示します。
出力修飾子の下のいくつかのオプション。
  1. 進行状況情報を表示する前に最初のバイトが転送されるまで待機するには、 –waitを使用します オプション。
  2. 転送されるデータの合計量がサイズであると想定する パーセンテージとETAを計算するときのバイト数は、 –size SIZEを使用します オプション。
  3. 更新間の秒数を指定するには、 –interval SECONDSを使用します オプション。
  4. –forceを使用する 操作を強制するオプション。このオプションは、標準エラーが端末ではない場合に、pvにビジュアルを表示させる。
  5. 一般的なオプションは–help 使用情報と–バージョンを表示します バージョン情報を表示します。

例で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。 pvの使用 およびダイアログ ターミナルベースのツールを組み合わせて、次のようにダイアログプログレスバーを作成します。

# tar -czf - ./Documents/ | (pv -n > backup.tgz) 2>&1 | dialog --gauge "Progress" 10 70

概要

これは、ファイルの対処/移動/バックアップなどの操作の進行状況を監視する機能がないツールで使用できる優れた端末ベースのツールです。その他のオプションについては、 man pv> 。

この記事がお役に立てば幸いです。pvコマンドの使用について追加するアイデアがあれば、コメントを投稿してください。また、使用中にエラーが発生した場合は、コメントを残すこともできます。


Linux
  1. コマンドラインを使用してLinuxを再起動する方法

  2. bzip2 コマンドを使用して Linux で .bz2 ファイルを圧縮および解凍する方法

  3. Linuxシェルでcpコマンドを使用して、ディレクトリ全体を別のディレクトリにコピーするにはどうすればよいですか?

  1. 「cat」コマンドを使用してLinuxパーティションをバックアップまたはクローンする方法

  2. Linuxでtarコマンドを使用してファイルを圧縮および抽出する方法は?

  3. コマンドを使用してLinuxでプロセスを強制終了する方法は?

  1. コマンドラインを使用してMySQLデータベースをバックアップおよび復元する方法

  2. 「dd」コマンドを使用して Linux OS をバックアップする方法

  3. gnu cp コマンドを使用して複数のディレクトリにファイルをコピーする方法