友人の一人がpvについて、「私は7年間管理者です。このツールが何十回も必要でしたが、存在することすら知りませんでした。」 Harbで招待状を取得する方法を考えて、pvの検索を入力しました。 そして何も見つかりませんでした。
したがって、pvはpipeviewerの略です。つまり、pipe viewerと同じです。 パイプの使用の有効性についてはお話ししません。誰にも秘密ではありません。 それらを使用する場合の唯一の「しかし」ことは、コマンドを入力してEnterキーを押すだけでは十分でない場合が多いことです。実行にかかる時間を知るには。 pvが示すのは、データ処理の速度です。
歌詞は終わったので、例に移りましょう。
Debianにpvをインストールするのはとても簡単です。
% sudo aptitude install pv
さらに紹介すると、あなたは私がいくつかの有用なログの幸運な所有者であり、ある時点でそれらをアーカイブすることに手がついたのと同じだとしましょう
% cat rt94-171-06 | gzip > rt94-171-06.gz
この操作にどれくらい時間がかかるか考えていますか?
PVでも同じこと
%pv rt94-171-06 | gzip > rt94-171-06.gz
128MB 0:00:15 [ 9.1MB/s] [=====>.....................] 18% ETA 0:01:07
15秒で128 MBがパイプを通過したことがはっきりとわかります。これは総量の18%で、操作にはさらに1分7秒かかります。
pvはcatに取って代わるもののように思えるかもしれませんが、実際にはその機能ははるかに広くなっています。 たとえば、カタログ全体を圧縮アーカイブにパックします
%tar -czf - . | pv > out.tgz
21.9MB 0:00:15 [1.47MB/s] [...<=>.....................]
すでに悪くはないが、完了の時間をもっと見せたい。 これを行うには、-sスイッチを使用してpvにバイト単位のディレクトリサイズを渡します。
%tar -czf - . | pv -s $(du -sb | grep -o '[0-9]*') > out.tgz
44.3MB 0:00:27 [1.73MB/s] [>..........................] 0% ETA 13:36:22
私の手術全体には13時間半かかります。 へー、累積=)
pvの複数のコピーからコマンドを作成することもできます。
%tar -cf - . | pv -cN tar -s $(du -sb | grep -o '[0-9]*') | gzip | pv -cN gzip > out.tgz
tar: 97.1MB 0:00:08 [12.3MB/s] [>......................] 0% ETA 1:50:26
gzip: 13.1MB 0:00:08 [1.6MB/s] [....<=>................]
-cスイッチは、pvのいくつかのコピーが互いの上に情報を表示しないようにするために必要です。 -Nスイッチはスケール名を与えます。
最後に、Linuxに関する1つの英語のブログの面白い例
%pv /dev/urandom > /dev/null
18MB 0:00:05 [ 3,6MB/s] [...<=>............................]