Es kommt oft vor, dass Sie warten müssen, bis etwas beendet ist, wie zum Beispiel:
- Ein Datei-Download.
- Erstellen oder Extrahieren einer TAR-Datei.
- Ein Ansible-Job.
Einige dieser Prozesse haben eine Art Fortschrittsanzeige, aber manchmal wird der Prozess durch eine Abstraktionsschicht geführt, und die einzige Möglichkeit, den Fortschritt zu messen, sind seine Nebenwirkungen. Einige davon könnten sein:
- Eine heruntergeladene Datei wird immer größer.
- Ein aus einem Tarball extrahiertes Verzeichnis füllt sich mit Dateien.
- Der Ansible-Job erstellt einen Container.
Sie können all diese Dinge mit Befehlen wie diesen abfragen:
$ ls -l downloaded-file
$ find . | wc -l
$ podman ps
$ docker ps
Aber führen Sie diese Befehle immer wieder aus, selbst wenn es mit der Bequemlichkeit des Bash-Verlaufs und dem Pfeil nach oben geschieht , ist mühsam.
Ein anderer Ansatz besteht darin, ein kleines Bash-Skript zu schreiben, um diese Befehle für Sie zu automatisieren:
while :
do
docker ps
sleep 2
done
Das Schreiben solcher Skripte kann jedoch auch mühsam werden. Sie könnten ein kleines generisches Skript schreiben und es paketieren, sodass es Ihnen immer zur Verfügung steht. Glücklicherweise waren andere Open-Source-Entwickler bereits dort und haben das getan.
Das Ergebnis ist der Befehl watch
.
Weitere Linux-Ressourcen
- Spickzettel für Linux-Befehle
- Spickzettel für fortgeschrittene Linux-Befehle
- Kostenloser Online-Kurs:RHEL Technical Overview
- Spickzettel für Linux-Netzwerke
- SELinux-Spickzettel
- Spickzettel für allgemeine Linux-Befehle
- Was sind Linux-Container?
- Unsere neuesten Linux-Artikel
Uhr installieren
Die watch
Befehl ist Teil von procps-ng
Wenn Sie also Linux verwenden, haben Sie es bereits installiert.
Installieren Sie unter macOS watch
mit MacPorts oder Homebrew. Verwenden Sie unter Windows Chocolatey.
Uhr verwenden
Die watch
command führt regelmäßig einen Befehl aus und zeigt seine Ausgabe an. Es hat einige Text-Terminal-Feinheiten, so dass nur die letzte Ausgabe auf dem Bildschirm erscheint.
Die einfachste Verwendung ist:watch <command>
.
Zum Beispiel das Präfix docker ps
Befehl mit watch
funktioniert so:
$ watch docker ps
Die watch
Befehl und ein paar kreative Unix-Befehlszeilentricks können Ad-hoc-Dashboards generieren. Zum Beispiel, um Prüfereignisse zu zählen:
$ watch 'grep audit: /var/log/kern.log |wc -l'
Im letzten Beispiel ist es wahrscheinlich nützlich, wenn es einen visuellen Hinweis darauf gibt, dass sich die Anzahl der Audit-Ereignisse geändert hat. Wenn eine Änderung erwartet wird, Sie aber möchten, dass etwas "anders" aussieht, watch --differences
funktioniert gut. Es hebt alle Unterschiede zum letzten Lauf hervor. Dies funktioniert besonders gut, wenn Sie mehrere Dateien durchsuchen, sodass Sie leicht sehen können, welche sich geändert hat.
Wenn Änderungen nicht erwartet werden, können Sie mit watch --differences=permanent
verlangen, dass sie "permanent" hervorgehoben werden, um zu wissen, welche zu untersuchen sind . Dies ist oft nützlicher.
Steuerhäufigkeit
Schließlich kann der Befehl manchmal ressourcenintensiv sein und sollte nicht zu häufig ausgeführt werden. Das -n
Parameter steuert die Frequenz. Watch verwendet standardmäßig zwei Sekunden, aber watch -n 10
könnte für etwas Ressourcenintensiveres geeignet sein, wie das Suchen nach einem Muster in einer beliebigen Datei in einem Unterverzeichnis:
$ watch -n 10 'find . -type f | xargs grep suspicious-pattern'
Einen Befehl mit watch beobachten
Die watch
Der Befehl ist für viele Ad-hoc-Systemverwaltungsaufgaben nützlich, bei denen Sie auf einen zeitaufwändigen Schritt ohne Fortschrittsbalken warten müssen, bevor Sie mit dem nächsten fortfahren. Obwohl dies keine großartige Situation ist, watch
kann es etwas besser machen – und Ihnen Zeit geben, an diesen Notizen für die Retrospektive zu arbeiten! Laden Sie den Spickzettel herunter um hilfreiche Syntax und Optionen griffbereit zu haben.