• Allgemein
  • Überwachen und Verwalten von Prozessen in Echtzeit mit ‚watch‘ unter Linux

Überwachen und Verwalten von Prozessen in Echtzeit mit ‚watch‘ unter Linux

Was ist der Linux-Befehl watch?

Der Linux-Befehl watch ist ein interaktives Dienstprogramm zur Echtzeitüberwachung von Befehlszeilenbefehlen. Er ermöglicht es dir, die Ausgabe eines Befehls kontinuierlich zu beobachten, wobei die Ergebnisse dynamisch aktualisiert werden. watch eignet sich hervorragend für die Überwachung von Systemprozessen, Protokollen und anderen Echtzeitereignissen.

Funktionsweise von watch

watch funktioniert, indem es den angegebenen Befehl in einem Loop alle paar Sekunden ausführt. Die Standardeinstellung für das Aktualisierungsintervall beträgt 2 Sekunden, kann aber angepasst werden. Die Ausgabe des Befehls wird immer aktualisiert, wodurch du laufende Prozesse oder Ereignisse in Echtzeit verfolgen kannst.

Vorteile der Verwendung von watch

Die Verwendung von watch bietet zahlreiche Vorteile:

  • Echtzeitüberwachung: Verfolge laufende Prozesse und Ereignisse in Echtzeit, ohne manuell Eingaben machen zu müssen.
  • Dynamische Anzeige: Die Befehlsausgabe wird kontinuierlich aktualisiert, sodass du Änderungen sofort sehen kannst.
  • Intuitive Benutzererfahrung: Die einfache Syntax und die minimalistische Oberfläche von watch machen es einfach zu bedienen.
  • Vielseitigkeit: Überwache fast jeden Befehlszeilenbefehl, von Systembefehlen bis hin zu benutzerdefinierten Skripten.

Verwendung von watch zur Überwachung von Befehlszeilenbefehlen

Der Befehl watch in Linux ermöglicht es dir, die Echtzeitausgabe von Befehlszeilenbefehlen zu überwachen. Dies ist besonders nützlich für die Überwachung laufender Prozesse, die Systemleistung oder die Fortschritte langer Aufgaben.

Grundlegende Verwendung

Um einen Befehlszeilenbefehl mit watch zu überwachen, gibst du einfach watch gefolgt vom Befehl ein. Beispielsweise kannst du den Befehl ping verwenden, um die Netzwerkverbindung zu einem entfernten Host zu überwachen:

watch ping google.com

Dies zeigt die Ausgabe des Befehls ping sekündlich an.

Anpassung des Aktualisierungsintervalls

Das Aktualisierungsintervall kann mit der Option -n angepasst werden. Die folgende Syntax wird verwendet:

watch -n [Intervall in Sekunden] [Befehl]

Beispielsweise kannst du das Aktualisierungsintervall auf 5 Sekunden festlegen:

watch -n 5 ping google.com

Anzeige im Vollbildmodus

Um die Ausgabe des Befehls im Vollbildmodus anzuzeigen, verwende die Option -d:

watch -d [Befehl]

Dies ist nützlich für die Überwachung von Prozessen, die viel Ausgabe erzeugen.

Anhalten und Fortsetzen der Überwachung

Zum Anhalten der Überwachung drücke die Tastenkombination Strg + C. Um die Überwachung fortzusetzen, gib watch erneut ein.

Verwendung in Skripten und Zeitplanern

Du kannst watch auch in Skripten und Zeitplanern verwenden, um Prozesse automatisiert zu überwachen. Dies kann beispielsweise zur Überwachung der Systemleistung oder zur Benachrichtigung bei Fehlern verwendet werden.

Dynamische Anzeige von Befehlszeilenergebnissen

Die Stärke von watch liegt in der Möglichkeit, die Ergebnisse eines Befehls in Echtzeit dynamisch anzuzeigen. Dies ermöglicht es dir, Prozesse und Systeminformationen bequem zu überwachen, ohne ständig neue Befehle auszuführen.

Automatische Aktualisierung der Ergebnisse

Standardmäßig aktualisiert watch die Ergebnisse des Befehls alle 2 Sekunden. Dieses Intervall kannst du mit der Option -n anpassen, auf die wir später eingehen werden. Bei jeder Aktualisierung wird der aktuelle Zustand des Befehls neu berechnet und die Ausgabe auf dem Bildschirm aktualisiert.

Echtzeit-Rückmeldungen

Im Gegensatz zu herkömmlichen Befehlen, die einmalige Ergebnisse liefern, bietet watch eine kontinuierliche Rückmeldung. Dies ist besonders nützlich für die Überwachung von laufenden Prozessen oder die Beobachtung von Systemmetriken über einen längeren Zeitraum.

Anpassen der Bildwiederholfrequenz

Wenn du häufigere Aktualisierungen wünschst, kannst du das Aktualisierungsintervall mit der Option -n verringern. Um beispielsweise die Ergebnisse alle halbe Sekunde zu aktualisieren, gibst du Folgendes ein:

watch -n 0.5 command

Wenn du weniger häufige Aktualisierungen wünschst, kannst du das Intervall entsprechend erhöhen.

Sofortiges Aktualisieren

Möglicherweise möchtest du die Ergebnisse sofort aktualisieren, ohne auf das nächste Intervall zu warten. Dazu kannst du die Tastenkombination Strg+L verwenden. Dies aktualisiert den Bildschirm sofort und zeigt die neuesten Ergebnisse deines Befehls an.

Anzeigen von Befehlszeilenergebnissen im Vollbildmodus

Mit watch kannst du Befehlszeilenergebnisse nicht nur kontinuierlich überwachen, sondern sie auch im Vollbildmodus anzeigen. Dies ist besonders nützlich, wenn du einen ausführlichen Überblick über die Ausführung eines Befehls haben möchtest oder wenn du die Ergebnisse für andere Personen präsentieren musst.

Die Option -x

Um Befehlszeilenergebnisse im Vollbildmodus anzuzeigen, verwendest du die Option -x. Diese Option weist watch an, das Terminalfenster zu maximieren und die Ergebnisse auf dem gesamten Bildschirm anzuzeigen.

watch -x uptime

Automatische Größenänderung

Wenn du die Größe des Terminalfensters änderst, passt watch die Anzeige der Ergebnisse automatisch an. So kannst du die Ergebnisse immer optimal im Vollbildmodus anzeigen, unabhängig von der Größe des Terminals.

Zoom-Steuerung

Mithilfe der Tastenkombinationen Strg++ und Strg+- kannst du die Größe des Textes in den Ergebnissen vergrößern bzw. verkleinern. Dies ermöglicht dir eine detailliertere Ansicht oder eine bessere Übersicht über die Ergebnisse.

Beenden des Vollbildmodus

Um den Vollbildmodus zu beenden, drücke die Taste q. Dadurch kehrt watch zum normalen Betriebsmodus zurück und zeigt die Ergebnisse im Terminalfenster an.

Anhalten und Fortsetzen der Überwachung mit watch

Während watch Befehlszeilenausgaben in Echtzeit anzeigt, besteht möglicherweise die Notwendigkeit, die Überwachung vorübergehend zu pausieren oder fortzusetzen. Hier sind die Optionen, die watch dafür bereitstellt:

Anhalten der Überwachung

Zum Anhalten der Überwachung drückst du einfach die Taste Strg + Z. Dadurch wird der watch-Prozess in den Hintergrund versetzt und angehalten.

Fortsetzen der Überwachung

Um watch fortzusetzen, gibst du den Befehl fg ein. Dadurch wird der Prozess wieder in den Vordergrund gebracht und die Überwachung fortgesetzt.

Tipp für schnelles Anhalten und Fortsetzen

Alternativ kannst du auch die Taste Strg + C drücken, um watch zu stoppen, und dann den Befehl watch -c eingeben, um ihn mit den ursprünglichen Einstellungen fortzusetzen.

Wichtig zu beachten:

  • Wenn du watch anhältst, werden die bisher angezeigten Ergebnisse nicht beibehalten. Sobald du die Überwachung fortsetzt, werden die Ergebnisse von vorne angezeigt.
  • Das Anhalten und Fortsetzen der Überwachung wirkt sich nicht auf die Befehlszeile selbst aus, die du überwachst. Wenn der Befehl beispielsweise einen langen Prozess ausführt, läuft dieser weiterhin im Hintergrund, auch wenn watch angehalten wird.

Intervall der Ergebnisaktualisierung anpassen

Standardmäßig aktualisiert watch die Befehlszeilenergebnisse alle zwei Sekunden. Du kannst jedoch den Aktualisierungsintervall anpassen, um den Aktualisierungszyklus an deine Bedürfnisse anzupassen.

Manuelle Anpassung des Aktualisierungsintervalls

Um den Aktualisierungsintervall manuell anzupassen, verwende die Option -n. Danach gib die Anzahl der Sekunden an, in denen watch die Ergebnisse aktualisieren soll.

watch -n 5 some-command

In diesem Beispiel wird der Befehl some-command alle fünf Sekunden aktualisiert.

Umgebungsvariable WATCH_INTERVAL

Alternativ kannst du die Umgebungsvariable WATCH_INTERVAL festlegen, um den standardmäßigen Aktualisierungsintervall zu überschreiben. Dies ist hilfreich für globale Anpassungen, die für alle Aufrufe von watch gelten sollen.

export WATCH_INTERVAL=10
watch some-command

In diesem Fall wird watch alle zehn Sekunden aktualisiert.

Auswählen des optimalen Aktualisierungsintervalls

Die Wahl des optimalen Aktualisierungsintervalls hängt von deinen spezifischen Überwachungsanforderungen ab. Für Anwendungen, bei denen Echtzeitdaten erforderlich sind, kannst du einen kurzen Intervall verwenden, z. B. 1-2 Sekunden. Für Überwachungsaufgaben, bei denen weniger häufige Updates ausreichen, kannst du einen längeren Intervall wählen, um die Systemressourcen zu schonen.

Filterung von Befehlszeilenergebnissen

Wenn du dich auf bestimmte Informationen in den Ergebnissen deines überwachten Befehls konzentrieren möchtest, kannst du Filter verwenden, um die Anzeige einzuschränken.

Live-Filterung mit grep

Mit grep kannst du Live-Filter auf die Ausgabe deines Befehls anwenden.

watch 'netstat -tnlp | grep <suchmuster>'

Ersetze <suchmuster> durch das Muster, nach dem du filtern möchtest, z. B. einen bestimmten Port oder eine IP-Adresse.

Verwendung von sed zur erweiterten Filterung

Für komplexere Filteroperationen kannst du sed verwenden. sed ist ein leistungsstarkes Textverarbeitungstool, mit dem du Zeilen bearbeiten und ersetzen kannst.

watch 'netstat -tnlp | sed -e "s/<muster1>/<ersatz1>/g" -e "s/<muster2>/<ersatz2>/g"'

In diesem Beispiel ersetzt sed alle Vorkommen von <muster1> mit <ersatz1> und <muster2> mit <ersatz2>.

Sortieren der Ergebnisse mit sort

sort ermöglicht es dir, die Ergebnisse deines Befehls zu sortieren.

watch 'netstat -tnlp | sort -nk <spalte>'

Ersetze <spalte> durch die Spaltennummer, nach der du sortieren möchtest. Beispielsweise sortiert -nk 5 nach der fünften Spalte in numerischer Reihenfolge.

Durch die Verwendung von Filtern kannst du die Überwachungsergebnisse präzise auf die Informationen einschränken, die für dich am relevantesten sind, sodass du fundiertere Entscheidungen auf der Grundlage der bereitgestellten Daten treffen kannst.

Verwendung von watch für die Systemüberwachung

watch ist ein leistungsstarkes Werkzeug, das du zur Überwachung der Leistung und des Status deines Systems einsetzen kannst. Es ermöglicht dir, Befehlszeilenbefehle in Echtzeit auszuführen und die Ergebnisse dynamisch anzuzeigen.

Überwachung der Prozessnutzung

Du kannst watch verwenden, um die Prozessnutzung auf deinem System zu überwachen. Führe dazu den folgenden Befehl aus:

watch top -b -n 1

Dieser Befehl führt den Befehl top aus, der eine Echtzeit-Liste der laufenden Prozesse anzeigt. Die Option -b sortiert die Prozesse nach CPU-Auslastung und die Option -n 1 aktualisiert die Liste alle 1 Sekunde.

Überwachung der Systemlast

Die Systemlast ist ein Maß dafür, wie ausgelastet dein System ist. Du kannst watch verwenden, um die Systemlast zu überwachen, indem du folgenden Befehl ausführen:

watch uptime

Dieser Befehl zeigt die aktuelle Systemlast, die Anzahl der laufenden Prozesse und die Gesamtbetriebszeit des Systems an.

Überwachung der Festplattennutzung

Du kannst watch verwenden, um die Festplattennutzung auf deinem System zu überwachen. Führe dazu den folgenden Befehl aus:

watch df -h

Dieser Befehl führt den Befehl df aus, der die belegte und freie Speicherplatzmenge auf allen Dateisystemen anzeigt.

Überwachung des Netzwerkverkehrs

Du kannst watch verwenden, um den Netzwerkverkehr auf deinem System zu überwachen. Führe dazu den folgenden Befehl aus:

watch netstat -nt | head

Dieser Befehl führt den Befehl netstat aus, der die aktiven Netzwerkverbindungen anzeigt. Die Option -n zeigt numerische Adressen an, und die Option -t zeigt TCP-Verbindungen an. Die Option head zeigt nur die ersten paar Zeilen der Ausgabe an, du kannst aber auch less oder more verwenden, um die gesamte Ausgabe zu durchsuchen.

Mit watch kannst du die Systemüberwachung automatisieren und so die Leistung und den Status deines Systems im Auge behalten.

Verwenden von watch in Skripten und Zeitplanern

Mithilfe von watch kannst du nicht nur Befehlszeilenbefehle in Echtzeit überwachen, sondern auch komplexe Überwachungs- und Automatisierungsszenarien erstellen, indem du es in Skripten und Zeitplaner integrierst.

Skripterstellung

Du kannst Skripte schreiben, die watch verwenden, um bestimmte Aufgaben oder Prozesse wiederholt auszuführen und dabei deren Ergebnisse anzuzeigen. Dies eignet sich beispielsweise für die Erstellung von Überwachungsprogrammen oder zur Automatisierung von Aufgaben wie der Dateisynchronisierung oder Datensicherung.

So kannst du beispielsweise ein Skript erstellen, das den Befehl df im 30-Sekunden-Intervall ausführt und die Festplattennutzung anzeigt:

#!/bin/bash

while true; do
  watch -n 30 df
done

Zeitplanung

Du kannst watch als Teil einer Zeitplanungsaufgabe verwenden, um Befehle oder Skripte automatisch in regelmäßigen Abständen auszuführen. Dies ist praktisch für die Überwachung von Systemmetriken, das Ausführen von Wartungsaufgaben oder die Bereitstellung von Benachrichtigungen.

Zum Beispiel kannst du einen Zeitplan erstellen, der watch verwendet, um den Befehl uptime alle 10 Minuten auszuführen:

Mit cron

crontab -e

Füge folgende Zeile hinzu:

*/10 * * * * watch -n 1 uptime

Mit systemd Timer

sudo systemctl edit watch-uptime.timer

Füge folgenden Inhalt hinzu:

[Unit]
Description=Watch uptime every 10 minutes

[Timer]
OnCalendar=*:0/10

[Install]
WantedBy=timers.target

Fazit

Durch die Integration von watch in Skripten und Zeitplaner kannst du leistungsstarke Automatisierungsaufgaben ausführen und komplexe Überwachungslösungen erstellen. Dies erleichtert es dir, Systemvorgänge in Echtzeit zu überwachen und sicherzustellen, dass deine Systeme optimal laufen.