一部のプロセスで作業する場合、ファイル操作の進行状況を視覚化する必要がある場合があります。 一部のコマンドには進行状況を確認するのに役立つパラメーターがありますが、それがないコマンドの場合は、別の方法を使用する必要があります。 この問題を軽減するために、起動するさまざまなプロセスの進行状況を示すパイプビューアを使用できます。
パイプビューアとは
パイプビューア (pv)は、完了率、ETA、転送された合計データ、経過時間などの情報を提供することにより、パイプラインを介したデータの進行状況を監視できるCLIツールです。プロセスがある場合は、パイプビューアーを挿入できます。進行状況を視覚的に示すための、異なるプロセス間の通常のパイプとして。
パイプビューアツールのオプション:
-s, --size <size>
:転送されるデータの合計量がSIZEであると想定します。 サイズはバイト単位または単位を使用して指定できます(b, kb, mb, gb, tb
)。-N, --name <name>
:出力情報の前にNAMEを付けます。
1)パイプビューアのインストール
パイプビューアは、以下のようにnode.jsを介してインストールできます。
# npm install -g pv
/usr/bin/pv -> /usr/lib/node_modules/pv/bin/pv.js
+ [email protected]
added 15 packages in 0.953s
パイプビューアの使用例
このパートでは、pvツールの使用に役立ついくつかの異なる例を紹介します。
a)ddコピーの進行状況を表示する
ddコマンドを使用すると、ファイルコピーの進行状況を表示できます。
# dd if=ubuntu-gnome-17.04-desktop-amd64.iso | pv | dd of=dest/ubuntu17
0.00% | 0 ETA | 1.36GB Transferred | 95.71MB/s2964416+0 records in
2964416+0 records out
1517780992 bytes (1.5 GB) copied, 14.7174 s, 103 MB/s
100.00% | 0 ETA | 1.41GB Transferred | 96.5MB/s2964416+0 records in
2964416+0 records out
1517780992 bytes (1.5 GB) copied, 14.7301 s, 103 MB/s
b)猫のコマンドの進行
メッセージログファイルの内容を表示するときに、catコマンドの進行状況を表示するように決定できます。 example
# cat /var/log/messages | pv
Oct 13 03:36:02 localhost journal: Runtime journal is using 6.1M (max allowed 49.4M, trying to leave 74.1M free of 488.4M available → current limit 49.4M).
Oct 13 03:36:02 localhost kernel: Linux version 4.9.36-x86_64-linode85 ([email protected]) (gcc version 4.9.2 (Debian 4.9.2-10) ) #1 SMP Thu Jul 6 15:31:23 UTC 2017
........
........
100.00% | 0 ETA | 114.83KB Transferred | 114.83KB/s
c)圧縮中に進行状況を表示する
圧縮の一部の操作中に、進行状況を表示する必要がある場合があります。 以下のように可能です
# tar -cf - /var/log/ | pv -N backlog | tar -C . -x
tar: Removing leading `/' from member names
backlog: 100.00% | 0 ETA | 660KB Transferred | 660KB/s
d)ライブsshネットワークを視覚化する
ssh経由でホストに接続し、ライブ転送速度を表示できます。 この場合、転送されたすべてのデータをに転送します /dev/null
ローカルテストで
# yes | pv | ssh paul@localhost "cat > /dev/null"
The authenticity of host 'localhost (::1)' can't be established.
ECDSA key fingerprint is SHA256:lqes2c9Obi9lCSepwdT8uovcsmhcboUAsylF69MENDE.
ECDSA key fingerprint is MD5:38:67:a1:25:96:7b:69:02:f6:b8:ff:5d:ce:03:fd:a0.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'localhost' (ECDSA) to the list of known hosts.
paul@localhost's password:
0.00% | 0 ETA | 800.84MB Transferred | 17.04MB/s
Rocco MusolinoのUnixパイプビューアーは、パッケージを介してインストールされた「通常の」パイプビューアーとして、進行状況バーで完了したパーセンテージを表示しません。 プロセスの進行を視覚化できないコマンドに直面すると、パイプビューアが興味深いことがわかります。