Pipe Viewer – Ein Tool zum Anzeigen des Fortschritts von Befehlen in Linux

Wenn Sie an einigen Prozessen arbeiten, müssen Sie manchmal den Fortschritt von Dateioperationen visualisieren. Einige Befehle haben einen Parameter, der Ihnen hilft, den Fortschritt zu sehen, aber für diejenigen, die ihn nicht haben, müssen Sie eine andere Methode verwenden. Um dieses Problem zu mildern, können Sie einen Pipe Viewer verwenden, der den Fortschritt der verschiedenen Prozesse anzeigt, die Sie starten.

Was ist Pipe Viewer?

Rohrbetrachter (pv) ist ein CLI-Tool, mit dem Sie den Fortschritt von Daten durch eine Pipeline überwachen können, indem Sie Informationen wie den abgeschlossenen Prozentsatz, die voraussichtliche Ankunftszeit, die insgesamt übertragenen Daten, die verstrichene Zeit usw. angeben. Wenn Sie einige Prozesse haben, können Sie den Pipeline-Viewer einfügen als normales Rohr zwischen den verschiedenen Prozessen, um den Fortschritt visuell anzuzeigen.

Optionen des Rohr-Viewer-Tools:

  • -s, --size <size>: Angenommen, die zu übertragende Gesamtdatenmenge ist SIZE. Sie können eine Größe in Byte oder in Einheiten (b, kb, mb, gb, tb).
  • -N, --name <name>: Den Ausgabeinformationen NAME voranstellen.

1) Installation von Pipe Viewer

Der Pipe Viewer kann wie folgt über node.js installiert werden:

# npm install -g pv
/usr/bin/pv -> /usr/lib/node_modules/pv/bin/pv.js
+ [email protected]
added 15 packages in 0.953s

Beispiele für die Verwendung von Pipe Viewer

In diesem Teil zeige ich Ihnen einige verschiedene Beispiele, die Ihnen bei der Verwendung des pv-Tools helfen können

a) Zeigen Sie einen dd-Kopierverlauf an

Sie können den Fortschritt beim Kopieren einer Datei anzeigen, wenn Sie den Befehl dd verwenden

# dd if=ubuntu-gnome-17.04-desktop-amd64.iso | pv | dd of=dest/ubuntu17
 0.00% | 0 ETA | 1.36GB Transferred | 95.71MB/s2964416+0 records in
2964416+0 records out
1517780992 bytes (1.5 GB) copied, 14.7174 s, 103 MB/s
 100.00% | 0 ETA | 1.41GB Transferred | 96.5MB/s2964416+0 records in
2964416+0 records out
1517780992 bytes (1.5 GB) copied, 14.7301 s, 103 MB/s

b) Eine Katzenkommandofolge

Sie können sich entscheiden, den Verlauf des cat-Befehls anzuzeigen, wenn Sie den Inhalt der Nachrichtenprotokolldatei für . anzeigen example

# cat /var/log/messages | pv
Oct 13 03:36:02 localhost journal: Runtime journal is using 6.1M (max allowed 49.4M, trying to leave 74.1M free of 488.4M available → current limit 49.4M).
Oct 13 03:36:02 localhost kernel: Linux version 4.9.36-x86_64-linode85 ([email protected]) (gcc version 4.9.2 (Debian 4.9.2-10) ) #1 SMP Thu Jul 6 15:31:23 UTC 2017
........
........
100.00% | 0 ETA | 114.83KB Transferred | 114.83KB/s

c) Zeigen Sie den Verlauf beim Komprimieren an

Bei einigen Komprimierungsvorgängen kann es erforderlich sein, den Verlauf anzuzeigen. Es ist wie folgt möglich

# tar -cf - /var/log/ | pv -N backlog | tar -C . -x
tar: Removing leading `/' from member names
backlog: 100.00% | 0 ETA | 660KB Transferred | 660KB/s

d) Visualisieren Sie ein Live-SSH-Netzwerk

Sie können sich über ssh mit einem Host verbinden und die Live-Übertragungsgeschwindigkeit anzeigen. In unserem Fall leiten wir alle übermittelten Daten an /dev/null mit lokalem Test

# yes | pv | ssh paul@localhost "cat > /dev/null"
The authenticity of host 'localhost (::1)' can't be established.
ECDSA key fingerprint is SHA256:lqes2c9Obi9lCSepwdT8uovcsmhcboUAsylF69MENDE.
ECDSA key fingerprint is MD5:38:67:a1:25:96:7b:69:02:f6:b8:ff:5d:ce:03:fd:a0.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'localhost' (ECDSA) to the list of known hosts.
paul@localhost's password: 
 0.00% | 0 ETA | 800.84MB Transferred | 17.04MB/s

Der Unix-Pfeifenbetrachter von Rocco Musolino zeigt den mit dem Fortschrittsbalken abgeschlossenen Prozentsatz nicht als “normaler” Rohrbetrachter an, der über das Paket installiert wurde. Wir sehen, dass der Pipe Viewer interessant ist, wenn wir mit Befehlen konfrontiert werden, die es nicht ermöglichen, den Fortschritt der Prozesse zu visualisieren.