/ / Linuxコマンドの進行状況を監視する方法(PVと進行状況を使用)

Linuxコマンドの進行状況を監視する方法(pvと進行状況を使用)

ラップトップ上のLinuxターミナルプロンプト

盲目飛行の代わりに、Linuxを使用してください pv そして progress コマンドの進行状況を追跡するコマンド。これらのユーティリティを使用すると、通常はないコマンドの進行状況バーが表示されます。完了までの推定時間も表示されます。

飛行機で長距離飛行している場合背もたれにビデオスクリーンがなければ、あなたがあなたの旅のどこまで進んでいるかを知るのは簡単ではありません。あなたが離陸したときを知っています。フライトの所要時間はわかっています。しかし、予定通りに、時間通りに、または予定より遅れているかどうかはどのようにわかりますか?機内映画を見たくない場合は、通常、ビデオ画面を切り替えて、航空機の位置を示す地図を表示できます。また、到着予定時刻(ETA)などの統計情報も取得できます。

ターミナルウィンドウからコマンドを起動するとビデオ画面のない長距離飛行のように感じることもあります。すべてが順調であるか、プロセスがハングしたか、完了に近づいているかどうかを示すものは何もありません。カーソルの点滅はあまり有益ではありません。

pv そして progress コマンドを使用すると、いくつかの統計情報と少しの視覚的なフィードバック。プロセスが完了するまでの時間を確認できます。つまり、実行中のプロセスのETAを取得できます。カーソルを凝視するのに比べて、それは勝ちです。

PVのインストール

インストールする必要があります pv.

インストールする pv Ubuntuでは、次のコマンドを使用します。

sudo apt-get install pv

ターミナルウィンドウでsudo apt-get install pv

インストールする pv Fedoraでは、次のコマンドを使用します。

sudo dnf install pv

ターミナルウィンドウでsudo dnf install pv

インストールする pv マンジャロでは、次のコマンドを使用します。

sudo pacman -Syu pv

ターミナルウィンドウのsudo pacman -Syu pv

PVを使用する

pv パイプビューアーの略です。パイプはどこかにコマンドに関与する必要があります。 ISOイメージをパイプ処理する例を次に示します zip ISOの圧縮zipファイルを作成します。

スクリーンショットを撮れるほどコマンドを遅くするために、この記事で使用した例のファイルの一部は、SILVERXHDと呼ばれる古い低速の外部USBに保存されていました。

pv /media/dave/SILVERXHD/gparted-live-1.0.0-1-amd64.iso | zip > gparted.zip

pv /media/dave/SILVERXHD/gparted-live-1.0.0-1-amd64.iso | zip>ターミナルウィンドウでgparted.zip

情報 pv ディスプレイの一番下の行に表示されます。

ターミナルウィンドウでzipファイルを作成するためのpv出力

左から順に表示される情報は次のとおりです。

  • これまでに転送されたデータ。
  • 過去の経過時間。
  • データ転送速度(スループット)。
  • 進行状況バーと完了した割合の数値。
  • 完了までの推定残り時間(ETA)。

pvを使用してファイルをコピーする

出力を含むファイルをコピーするには pv、次のコマンドを使用します。

pv /media/dave/SILVERXHD/gparted-live-1.0.0-1-amd64.iso > gparted.iso

pv /media/dave/SILVERXHD/gparted-live-1.0.0-1-amd64.iso |端末ウィンドウのgparted.iso

ファイルがコピーされると、進捗レポートが表示されます。

teターミナルウィンドウでpvを使用してファイルをコピーする

pvを使用して複数のファイルをコピーする

複数のファイルとフォルダーをコピーするには pv ちょっとしたトリックを使う必要があります。を使用しております tar ファイルを移動します。

tar -c help-files/ | pv | tar -x -C Documents/

tar -c help-files / | pv |ターミナルウィンドウでtar -x -C Documents /

tar -c help-files/ コマンドの一部が指示します tar 作成する(-c)help-filesフォルダー内のファイルのアーカイブ。これはパイプスルーされます pv 進行状況が表示されるようにします。その後、パイプで戻されます tar コマンドの最後の部分。アーカイブが抽出されます(-x)およびディレクトリが変更されます(-C)抽出前のドキュメントへ。

そのため、ヘルプファイルにあるファイルとフォルダーは、進行状況を表示して、ドキュメントフォルダーにコピーされます。

ターミナルウィンドウでpvおよびtarを使用してファイルをコピーする

今回は出力が少し異なります。

ETAは取得できません。進行状況バーに移動インジケータが表示されるようになりました。プロセスがアクティブであることを示していますが、従来のプログレスバーのように左から右に成長することはありません。 pv パイプされているプロセスから抽出できる情報の表示に限定されます。

pvとtarを使用してアーカイブを作成する

でファイルをコピーする pv そして tar アーカイブファイルは残されません。一種の「仮想」アーカイブが作成されます tar、に直接フィードバックされます tar ファイルを抽出します。ファイルをコピーすることが目的であれば、それは達成されています。しかし、アーカイブファイルを作成する場合はどうでしょうか。

まだ使える tar アーカイブファイルを作成し、進行状況レポートを取得するには pv。で使用されるオプション tar-c (アーカイブの作成)、 -z (gzipで圧縮)および -f (アーカイブのファイル名)。

使用していることに注意してください - ファイル名として tar stdoutを使用し、その出力をターミナルウィンドウに書き込む。パイプスルーされるため、出力は表示されません pv.

アーカイブの実際の名前は、出力をパイプするファイル名になります pv に。この場合、「help-files.tgz」です。

tar -czf - ./help-files/ | pv > help-files.tgz

tar -czf-./help-files/ |ターミナルウィンドウでpv> help-files.tgz

前と同じ進捗インジケータが表示され、アーカイブファイルが作成されます。

端末ウィンドウでのtarおよびpvの出力

関連する: Linuxでtarコマンドを使用してファイルを圧縮および抽出する方法

pv表示オプション

使用できるオプションは多数あります pv レポートの詳細を変更します。

これらのオプションのいずれかを使用すると、他のオプションはすべてオフになります。したがって、3つの表示オプションを使用する場合は、これらの3つのオプションを指定する必要があります。

を使用して pv オプションなしで使用すると、 -pterb オプション。

  • -p:表示する 割合 コンプリート。これは進行状況バーと完了した割合の数値です。
  • -t:経過を表示する 時間.
  • -e:表示する ETA.
  • -r:表示する レート データ転送の。
  • -b:表示する バイト カウント(これまでに転送されたデータ)。
  • -n:パーセントを表示します 整数。これにより、完了した割合が整数で表示され、新しい更新が新しい行に追加されます。

最後のコマンドを繰り返して、 -p (完了率)オプション pv.

tar -czf - ./help-files/ | pv - p > help-files.tgz

tar -czf-./help-files/ | pv-p>ターミナルウィンドウのhelp-files.tgz

これにより、他のすべての表示オプションがオフになります。 pv 完了した要素のみを提供します。

なぜなら pv から完了した数字の割合を取得しません tar、進行状況バーは移動インジケータに置き換えられます。パーセンテージの数値はありません。

ターミナルウィンドウでのpvおよびtarからの出力

wcでpvを使用する

使用できます pv テキストファイル(またはファイル)をパイプする wc. wc 次に、キャリッジリターン、文字、単語をカウントし、 pv 進捗レポートを提供します。

ここでは、help-filesディレクトリ内のすべての「.page」ファイルをパイピングしています wc.

pv ./help-files/*.page |ターミナルウィンドウのwc

いつ wc これで、help-filesフォルダー内のすべての「.page」ファイルからのキャリッジリターン(行)、文字、単語の数を確認できます。

端末ウィンドウでのpvおよびwcからの出力

progressコマンドのインストール

progress コマンドは、次と同じ種類の有用な情報を提供します pv、ただし、Linuxコマンドの特定のセットで機能します。

インストールする progress Ubuntuでは、次のコマンドを使用します。

sudo apt-get install progress

ターミナルウィンドウでのsudo apt-getインストールの進行状況

インストールする progress Fedoraでは、次のコマンドを使用します。

sudo dnf install progress

ターミナル未亡人のsudo dnfインストールの進捗状況

インストールする progress マンジャロでは、次のコマンドを使用します。

sudo pacman -Syu progress

sudo pacman-ターミナルウィンドウでの進行状況

コマンドの進行状況

タイピング progress ターミナルウィンドウでEnterキーを押すと、次のコマンドのリストが表示されます。 progress で動作します。

progress

端末ウィンドウでの進捗コマンドの出力

パイプでProgressを使用する

コマンドを監視するために使用できる2つのテクニックがあります progress。 1つは、パイプを使用することです。

tar コマンドは、サポートされるコマンドのリストにあります progress 監視できるので、使用しましょう tar.

使用するオプションは標準です -c (アーカイブの作成)、 -z (gzipで圧縮)および -f (ファイル名)オプション。 help-filesフォルダー内のすべての圧縮アーカイブを作成します。アーカイブの名前は「help.tgz」になります。

それを配管します progress を使用して -m (モニター)オプション progress プロセスが完了するまで報告を続けます。

tar -czf help.tgz ./help-files/ | progress -m

tar -czf help.tgz ./help-files/ |端末ウィンドウでprogress -m

端末ウィンドウには、進行状況が表示されます tar アーカイブを作成するコマンド。

ターミナルウィンドウで進行状況を監視するtar

各ファイルが処理されると、次の情報とともにリストされます。

  • プロセスID。
  • プロセス名。
  • 完了した割合。
  • 処理されたデータとファイルの合計サイズ。
  • データレート(スループット)。
  • 推定残り時間(ETA)。

2番目のデータセットが表示されるのに驚くかもしれません。この最初のデータセットは tar。 2つ目は gzip. tar 呼び出します gzip 圧縮を実行します。なぜなら gzip サポートされているコマンドのリストにある progress それについて報告します。

継続モニターモードでの進行状況の使用

使用できます progress -M(モニター)オプションを使用して、リアルタイムの連続モニターモードで。

ターミナルウィンドウで次のコマンドを入力します。

progress -M

ターミナルウィンドウでの進捗状況-M

progress 監視するコマンドが実行されていないことを報告します。ただし、コマンドラインには戻りません。 progress 監視できるコマンドが開始されるまで待機します。その後、自動的にレポートを開始します。

端末ウィンドウでコマンドが開始されるのを待っている進行状況

別のターミナルウィンドウで、進行状況を監視できるコマンドのリストにあるコマンドを入力します。

使用します cat。すぐに終了したコマンドは登録されません progress、非常に長いテキストファイルの内容をリストします。

cat words.page

ターミナルウィンドウのcat words.page

ターミナルウィンドウで progress その中には、の統計が表示されます cat コマンドが実行され、完了に向かって動作します。

ターミナルウィンドウでの猫の進捗レポート

いつ cat ファイルのリストを終了します progress 待機状態に戻ります。

レポートできるコマンドの1つがかなりのタスクを実行するたびに、 progress 自動的に監視し、報告します。

それはかなりきれいです。

100%完了

実行時間の長いコマンドがどのように実行されているのか不思議から推測し、カーソルを熟考することから休憩を取る pv そして progress .