Linuxコマンドのプログレスバーを表示する方法

dd、cp、rsync、mvなどの多くのLinuxコマンドはプログレスですが、実行時にプログレスバーが表示されません。 最近コミットされたいくつかのコマンドを除いて、進行中の操作の進行状況をチェックする組み込みの方法はありません(ddコマンドにはGNUcoreutilsバージョン8.24からのstatus = progressがあります)。

この記事では、転送されるデータの進行状況を監視できる特定のLinuxツールとオプションについて説明します。

また読む:パイプビューア-Linuxでコマンドの進行状況を表示するツール

1)PVコマンド

Pvは、パイプを使用して転送されるデータの進行状況を監視できるコマンドラインベースのツールです。 pvコマンドを使用すると、次の情報を視覚的に確認できます。

  • 時間が経過した
  • プログレスバーを使用して完了したパーセンテージ。
  • 現在のスループット率。
  • 転送されたデータの合計。
  • ETA(推定時間)。

Pvのインストール

次のコマンドを使用して、ディストリビューションにpvをインストールできます。

Fedora、CentOSおよびRHEL

# yum install pv

Debian、Ubuntu、Linux Mint

# apt-get install pv

Gentoo Linux

# emerge --ask sys-apps/pv

FreeBSD Linux

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

例を使用したPVの使用法

pvの一般的な構文はpvです。 [Options] [File]

The -p オプションはプログレスバーをオンにします、 -t オプションは、pvが実行されている合計経過時間をアクティブにします。 -e オプションは、転送速度とデータサイズに基づいてETAを完了まで提供します。 -r オプションは、転送の現在のレートを表示し、最後に -b オプションは、これまでに転送されたデータの合計量を示します。

gzipを使用してアーカイブの作成の進行状況を監視する

これで example、以下ではgzipでpvを使用します example:

pv -tpre ~/Desktop/testfile.iso | gzip > ~/Desktop/testfile.gz
213MiB 0:00:14 [17.8MiB/s] [=========> ] 32% ETA 0:00:29

これで example、オプションと問題のファイルを提供し、アーカイブするファイルにリダイレクトしてgzipにパイプします。

pvでファイルをコピーするときの進行状況を監視する

$ pv ~/Desktop/testfolder/* > ~/Desktop/

667MiB 0:00:13 [50.5MiB/s] [================================>] 100%

オプションなしでpvを使用すると、デフォルトで自動的に実行されます pterb オプション。

pvおよびdialogコマンドを使用してダイアログプログレスバーを作成する

pv ~/Desktop/testfile.iso > ~/Desktop/destinationfile.iso | dialog --gauge "Progress" 10 70

2)進捗状況

Progress(以前はcvと呼ばれていました)は、p、mv、dd、tar、gzip / gunzip、catなどのcoreutils基本コマンドからコピーされたデータのパーセンテージを表示するツールです。ETAなどの追加情報を提供することもできます。

インストールの進行状況

これらの手順を使用して、任意のディストリビューションに進行状況をインストールできます。

sudo apt-get install libncurses5-dev (for Debian/Ubuntu) users.
# git clone https://github.com/Xfennec/progress.git
# make
# make install

例を使用した進捗状況の使用

進行状況の一般的な構文は、進行状況の監視です。 -q。 これにより、ターミナルウィンドウで現在および今後のすべての転送を監視できます。 これで、cpやmvなどのcoreutilsユーティリティが検出され、進行状況ウィンドウに表示されます。

ダウンロードの監視

progress -wc google-chrome

The -c オプションを使用して、google-のようなコマンド名を監視できます。chrome また firefox

3)Rsync

Rsyncは、ファイルをローカルおよびリモートで同期するために使用されます。 Rsyncはファイルのコピーに使用でき、外部アプリケーションを使用せずに進行状況を表示する機能もあります。

Rsyncのインストール

Fedora、CentOSおよびRHEL

# yum install rsync

Debian、Ubuntu、Linux Mint

# apt-get install rsync

例を使用したRsyncの使用

でrsyncを使用する必要があります -P また --progress ファイル転送中の進行状況を表示するオプション。 rsyncの基本的な構文は次のとおりです。

rsync --progress source destination

または

rsync -P source destination

デスクトップからnewfolderにzipファイルをコピーするには、次のように入力します。

$ rsync -P ~/Desktop/myfiles.zip ~/Desktop/newfolder
 321,683,456 45% 3.17MB/s 0:01:56

/からファイルをコピーするにはexample/*.tarを[email protected]というリモートサーバーに送信するには、次のように入力します。

rsync -av -P /example/*.tar [email protected]:~

4)アドバンストコピー

Advanced Copy(advcpmv)は、進行状況バーを追加し、進行中の転送に関する情報を提供するcpおよびmvユーティリティのmodです。

AdvancedCopyのインストール

これらの手順を使用して、任意のディストリビューションに進行状況をインストールできます。

# wget https://ftp.gnu.org/gnu/coreutils/coreutils-8.21.tar.xz
# tar xvJf coreutils-8.21.tar.xz
# cd coreutils-8.21/
# wget https://github.com/atdt/advcpmv/blob/master/advcpmv-0.5-8.21.patch
# patch -p1 -i advcpmv-0.5-8.21.patch
# ./configure
# make

「./configure」コマンドの実行中にこのエラーが発生する場合があります。

checking whether mknod can create fifo without root privileges... configure: error: in `/home/xxx/coreutils-8.21': configure: error: you should not run configure as root (set FORCE_UNSAFE_CONFIGURE=1 in environment to bypass this check) See `config.log' for more details

次のコマンドを実行してそのエラーを修正し、。/ configureコマンドを再実行します。

# export FORCE_UNSAFE_CONFIGURE=1

元のcpおよびmvコマンドをこれらの2つの新しいコマンドに置き換えます

# cp src/cp /usr/local/bin/cp
# cp src/mv /usr/local/bin/mv

例を使用した高度なコピーの使用

cpコマンドとmvコマンドは同じままです。唯一の変更は、 -g また -progress-bar cpコマンドのオプション。 The -R オプションは、ディレクトリを再帰的にコピーするために使用されます。 これが example コマンドの:

$ cp -gR /home/linoxide /home/linoxide/Desktop

または

# cp -R --progress-bar home/linoxide /home/linoxide/Desktop

いくつかのツールと、それらを使用してコマンドの進行状況を監視する方法を見てきました。 pvコマンドはセットアップが簡単で、コマンドラインアクティビティを監視できます。 progressユーティリティは、coreutilsコマンドのみに制限されています。 Rsyncにはファイル転送を監視する機能が組み込まれており、高度なコピーは、進行状況を表示するためにcpコマンドとmvコマンドにのみ適用されるパッチです。 あなたのトライアルに基づいて、あなたはこれらのどれがあなたに最適であるかを決めることができます。