So zeigen Sie den Fortschrittsbalken für Linux-Befehle an

Viele Linux-Befehle wie dd, cp, rsync und mv sind progressiv, aber es werden keine Fortschrittsbalken angezeigt, während sie ausgeführt werden. Es gibt keine eingebaute Möglichkeit, den Fortschritt laufender Operationen zu überprüfen, außer bei einigen Befehlen, die kürzlich Commits hatten (dd-Befehl hat status=progress von GNU coreutils Version 8.24).

In diesem Artikel betrachten wir bestimmte Linux-Tools und -Optionen, mit denen Sie den Fortschritt der Datenübertragung überwachen können.

Lesen Sie auch: Pipe Viewer – Ein Tool zum Anzeigen des Fortschritts von Befehlen in Linux

1) PV-Befehl

Pv ist ein befehlszeilenbasiertes Tool, mit dem Sie den Fortschritt der Datenübertragung mit Pipe überwachen können. Der Befehl pv bietet Ihnen eine visuelle Ansicht der folgenden Informationen.

  • Verstrichene Zeit
  • Prozentsatz, der mithilfe eines Fortschrittsbalkens abgeschlossen wurde.
  • Aktuelle Durchsatzrate.
  • Gesamtzahl der übertragenen Daten.
  • ETA (geschätzte Zeit).

Installation von PV

Sie können pv mit den folgenden Befehlen auf Ihrer Distribution installieren

Fedora, CentOS und RHEL

# yum install pv

Debian, Ubuntu und Linux Mint

# apt-get install pv

Gentoo-Linux

# emerge --ask sys-apps/pv

FreeBSD Linux

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

PV-Nutzung mit Beispielen

Die allgemeine Syntax für pv ist pv [Options] [File]

Der -p Option schaltet den Fortschrittsbalken ein, -t Option aktiviert die gesamte verstrichene Zeit, für die pv gelaufen ist, die -e Option bietet die ETA bis zum Abschluss basierend auf der Übertragungsrate und Datengröße, die -r Option zeigt die aktuelle Rate der Überweisung und schließlich die -b Option zeigt die Gesamtmenge der bisher übertragenen Daten an.

Überwachen Sie den Fortschritt beim Erstellen eines Archivs mit gzip

In diesem example, verwenden wir im Folgenden pv mit gzip example:

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

In diesem example, stellen wir die Optionen und die fragliche Datei bereit und leiten sie dann an gzip mit einer Umleitung zu der Datei, die wir archivieren möchten.

Überwachen Sie den Fortschritt beim Kopieren einer Datei mit pv

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

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

Die Verwendung von pv ohne Optionen wird automatisch mit der Standardeinstellung ausgeführt p, t, e,r und b Optionen.

Verwenden von pv- und Dialogbefehlen, um eine Dialogfortschrittsleiste zu erstellen

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

2) Fortschritt

Progress, früher bekannt als cv, ist ein Tool, das den Prozentsatz der kopierten Daten aus grundlegenden Coreutils-Befehlen wie p, mv, dd, tar, gzip/gunzip, cat usw. anzeigt. Es kann auch zusätzliche Informationen wie ETA und alle bereitstellen.

Fortschritt installieren

Mit diesen Schritten können Sie Progress auf jeder Distribution installieren.

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

Fortschrittsnutzung mit Beispielen

Die allgemeine Syntax für den Fortschritt lautet Fortschritt beobachten -q. Auf diese Weise können Sie alle aktuellen und anstehenden Überweisungen in einem Terminalfenster überwachen. Jetzt wird jedes von Ihnen aufgerufene Coreutils-Dienstprogramm wie cp und mv erkannt und im Fortschrittsfenster angezeigt.

Downloads überwachen

progress -wc google-chrome

Der -c Option kann verwendet werden, um einen Befehlsnamen wie google-chrome oder firefox

3) Rsync

Rsync wird verwendet, um Dateien lokal und remote zu synchronisieren. Rsync kann zum Kopieren von Dateien verwendet werden und hat auch die Möglichkeit, den Fortschritt ohne Verwendung in einer externen Anwendung anzuzeigen.

Rsync installieren

Fedora, CentOS und RHEL

# yum install rsync

Debian, Ubuntu und Linux Mint

# apt-get install rsync

Rsync-Nutzung mit Beispielen

Sie müssen rsync mit dem verwenden -P oder --progress Option, um den Fortschritt während der Dateiübertragung anzuzeigen. Die grundlegende Syntax für rsync ist

rsync --progress source destination

Oder

rsync -P source destination

Geben Sie Folgendes ein, um eine ZIP-Datei vom Desktop in einen neuen Ordner zu kopieren:

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

So kopieren Sie Dateien von einem /example/*.tar zu einem Remote-Server namens [email protected], geben Sie ein:

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

4) Erweiterte Kopie

Advanced Copy, oder advcpmv, ist ein Mod für die Dienstprogramme cp und mv, der einen Fortschrittsbalken hinzufügt und einige Informationen über laufende Übertragungen bereitstellt.

Installieren von Advanced Copy

Mit diesen Schritten können Sie Progress auf jeder Distribution installieren.

# 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

Sie erhalten diesen Fehler möglicherweise, während Sie den Befehl „./configure“ ausführen.

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

Führen Sie den folgenden Befehl aus, um diesen Fehler zu beheben, und führen Sie den Befehl ./configure erneut aus:

# export FORCE_UNSAFE_CONFIGURE=1

Ersetzen Sie die ursprünglichen Befehle cp und mv durch diese beiden neuen Befehle

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

Erweiterte Kopierverwendung mit Beispielen

Die Befehle cp und mv bleiben gleich, die einzige Änderung ist das Hinzufügen der -g oder -progress-bar Option zum Befehl cp. Der -R Option wird verwendet, um Verzeichnisse rekursiv zu kopieren. Hier ist ein example des Befehls:

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

Oder

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

Wir haben einige Tools gesehen und wie sie verwendet werden können, um den Fortschritt von Befehlen zu überwachen. Der Befehl pv ist einfach einzurichten und kann jede Befehlszeilenaktivität überwachen. Das Fortschrittsdienstprogramm ist auf nur coreutils-Befehle beschränkt. Rsync hat die eingebaute Fähigkeit, Dateiübertragungen zu überwachen, und erweitertes Kopieren ist ein Patch, der nur auf die Befehle cp und mv angewendet wird, um den Fortschritt anzuzeigen. Basierend auf Ihrem Test können Sie entscheiden, welche davon für Sie am besten geeignet ist.