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.