Wenn Sie feststellen, dass Sie denselben Befehl immer wieder ausführen, gibt es möglicherweise einen besseren Weg.

Manchmal müssen Sie einen Befehl oder ein Programm wiederholt ausführen, um verschiedene Aspekte Ihres Systems zu überwachen, wie laufende Prozesse, Speicherplatznutzung oder Benutzeranmeldungen. Mit dem Linux-Befehl „watch“ können Sie diese Aufgaben automatisieren, ohne sie immer wieder manuell ausführen zu müssen.

Mit diesem Befehl können Sie Systemaktivitäten in Echtzeit überwachen, z. B. Benutzeranmeldungen, Netzwerkstatus, Speicher- und CPU-Auslastung, Speicherplatz usw. Sehen wir uns an, wie man den watch-Befehl unter Linux verwendet.

Was ist der Wachbefehl?

Der Linux-Befehl „watch“ führt einen bestimmten Befehl oder ein Programm wiederholt und in regelmäßigen Abständen aus und zeigt seine Ausgabe im Terminal an. Dadurch können Sie die Änderungen in der Ausgabe in Echtzeit beobachten. Es aktualisiert die Ausgabe in jedem Intervall und überschreibt dabei die vorherige Ausgabe des Befehls. Standardmäßig wird der Befehl alle zwei Sekunden wiederholt und so lange fortgesetzt, bis Sie ihn manuell beenden

instagram viewer
Strg + C.

Sehen Sie sich die Befehlssyntax an

Die Syntax des watch-Befehls lautet:

watch options 

Für den Befehl watch stehen verschiedene Befehlszeilenoptionen zur Verfügung. Wenn Sie den Befehl watch ohne Optionen ausführen, wird der angegebene Befehl alle zwei Sekunden ausgeführt. Im Folgenden sehen Sie beispielsweise die Ausgabe des Befehls ls:

watch ls -l ~/

Die Ausgabe zeigt Ihnen die Änderungen in der Verzeichnisliste an, wenn eine Datei erstellt, gelöscht oder ihre Größe geändert wird, während die Ausgabe alle zwei Sekunden aktualisiert wird.

Führen Sie alle X Sekunden einen Befehl mit der Uhr aus

Sie können das Aktualisierungsintervall des Watch-Befehls ändern. Das bedeutet, dass Sie dem Watch-Befehl mitteilen können, dass er x Sekunden warten soll, bevor er den Befehl wiederholt. Um das Aktualisierungsintervall zu ändern, verwenden Sie die -N Option gefolgt vom Zeitintervall in Sekunden.

watch -n 

Um beispielsweise alle 5 Sekunden einen Befehl auszuführen, führen Sie Folgendes aus:

watch -n 5 

Markieren Sie Änderungen zwischen Updates

Der Watch-Befehl überschreibt seine Ausgabe bei jeder Aktualisierung. Verwendung der -D Mit dieser Option können Sie auch die Änderungen zwischen der vorherigen und der aktualisierten Ausgabe hervorheben.

watch -d

Standardmäßig zeigt der Befehl watch oben in jeder Ausgabe eine Kopfzeile an, die das Aktualisierungsintervall, den Befehlsnamen sowie das aktuelle Datum und die aktuelle Uhrzeit des Systems enthält. Sie können den Header mithilfe von aus der Ausgabe entfernen -T Möglichkeit:

watch -t 

Spielen Sie Signaltöne bei Fehler ab

Wenn die Ausführung eines Linux-Prozesses beendet ist, es gibt einen Exit-Code zurück. Konventionell ist der Wert bei Erfolg 0 und bei einem Fehler ungleich Null. Der Wachbefehl -B Die Option gibt einen Piepton aus, wenn der Befehl einen Exit ungleich Null zurückgibt.

Nehmen wir an, Sie möchten sshd.service überwachen und benachrichtigt werden, wenn der Dienst stoppt. Sie würden verwenden:

watch -b sudo systemctl status sshd.service

Dieser Befehl gibt Pieptöne aus, wenn der Dienst beendet wird. Der Piepton verstummt, wenn der Dienst wieder aufgenommen wird. Um dies zu testen, öffnen Sie ein weiteres Terminalfenster und beenden Sie den Dienst. Dadurch ertönt ein konstanter Signalton, bis Sie den Dienst erneut starten. Um diese Funktion nutzen zu können, muss jedoch das Beep-Paket auf Ihrem System installiert sein.

Beenden Sie den Watch-Befehl bei Ausgabeänderung

Sie können den Befehl watch auch anweisen, die Ausführung zu stoppen und zu beenden, wenn sich die Ausgabe des Befehls ändert. Sie können dies mit dem tun -G Möglichkeit. Diese Option ist in Szenarien sehr nützlich, in denen Sie auf bestimmte Änderungen in der Ausgabe warten.

Sobald sich die Ausgabe ändert, wird der Überwachungsbefehl gestoppt. Sie können diese Verwendung mit dem Echo-Befehl kombinieren, um eine Nachricht auf dem Bildschirm anzuzeigen.

Stellen Sie sich beispielsweise ein Szenario vor, in dem Sie darauf warten, dass eine Datei in Ihrem Verzeichnis ankommt. Der folgende Befehl überwacht das Verzeichnis auf die angegebene Datei. Sobald er eintrifft, stoppt die Ausführung des Überwachungsbefehls und die Meldung wird angezeigt Datei angekommen wird auf dem Terminal angezeigt.

watch -g "ls -l | grep filename" && echo "file arrived"

Ein weiteres nützliches Beispiel ist eine Benachrichtigung, wenn sich ein bestimmter Benutzer bei Ihrem System anmeldet:

watch -g "who | grep username" && echo "username logged in"

Dieser Befehl überwacht die Ausgabe von who-Befehl, der die angemeldeten Benutzer auflistet. Sobald sich der Benutzer anmeldet, stoppt der Überwachungsbefehl und zeigt eine Meldung auf dem Terminal an.

Ebenso können Sie den Befehl watch anweisen, einen Dienst zu stoppen, wenn Änderungen in einer Datei vorgenommen werden. Beachten Sie, dass Sie bei Verwendung einer Pipeline-Befehlskette den gesamten Befehl in Anführungszeichen setzen müssen.

Beobachten Sie die Aktivitäten in Ihrem Linux-System

Wenn Sie denselben Vorgang wiederholt ausführen, sollten Sie erwägen, ihn mit dem Befehl watch zu automatisieren. Es erspart Ihnen die häufige Eingabe der Befehle, um zu sehen, was sich geändert hat.

Sie können den Befehl watch auch mit anderen Linux-Befehlen verwenden, um Systemressourcen und -aktivitäten zu überwachen und Änderungen in Dateien oder Verzeichnissen zu verfolgen.