Der Befehl watch führt einen beliebigen Befehl in regelmäßigen Abständen aus und zeigt die Ausgabe im Terminal an. Das macht ihn zum idealen Werkzeug, um Systemzustände wie Speicherplatz, Netzwerkverbindungen oder Prozesse in Echtzeit zu überwachen.
Das Programm ist Teil des procps-Pakets (bzw. procps-ng) und auf den meisten Distributionen vorinstalliert.
Syntax des watch-Befehls
watch [OPTIONEN] BEFEHL
OPTIONEN– Flags, die das Verhalten steuern (z. B. Aktualisierungsintervall).BEFEHL– Der Befehl, der wiederholt ausgeführt wird.
Grundlegende Verwendung
Ohne weitere Optionen führt watch den angegebenen Befehl alle zwei Sekunden aus:
watch date
Der Befehl übernimmt das gesamte Terminal. In der Kopfzeile siehst du das Aktualisierungsintervall, den ausgeführten Befehl und die aktuelle Uhrzeit. Die Ausgabe des Befehls erscheint darunter und wird bei jeder Aktualisierung ersetzt.
Beende watch mit Strg+C.
Aktualisierungsintervall ändern
Mit der Option -n (--interval) legst du fest, wie oft der Befehl ausgeführt wird. Der Wert ist in Sekunden angegeben:
watch -n SEKUNDEN BEFEHL
Dieses Beispiel überwacht den Speicherplatz mit df und aktualisiert alle fünf Sekunden:
watch -n 5 df -h
Änderungen hervorheben
Die Option -d (--differences) hebt Unterschiede zwischen aufeinanderfolgenden Ausgaben hervor:
watch -d uptime
Werte, die sich seit der letzten Aktualisierung geändert haben, werden optisch markiert.
Mit -d=cumulative bleiben alle Änderungen dauerhaft hervorgehoben – nicht nur die der letzten Aktualisierung:
watch -d=cumulative uptime
Kopfzeile ausblenden
Wenn du nur die Befehlsausgabe sehen möchtest, ohne die Kopfzeile mit Intervall und Uhrzeit, verwende die Option -t (--no-title):
watch -t date
Bei Änderung automatisch beenden
Mit der Option -g (--chgexit) beendet sich watch automatisch, sobald sich die Ausgabe des Befehls ändert:
watch -g ls /tmp
Das ist nützlich, wenn du auf ein bestimmtes Ereignis wartest – etwa das Erscheinen einer Datei.
Befehle mit Pipes
Wenn der zu überwachende Befehl Pipes enthält, setze ihn in Anführungszeichen. Andernfalls führt watch nur den ersten Teil aus:
watch 'BEFEHL_1 | BEFEHL_2'
Dieses Beispiel zählt die aktiven Verbindungen auf Port 80:
watch 'netstat -an | grep -c ":80.*LISTEN"'
Praktische Anwendungsfälle
Speicherplatz überwachen:
watch -n 10 df -h
Arbeitsspeicher beobachten:
watch -n 2 free -h
Aktive Prozesse eines Programms zählen:
watch 'ps aux | grep -c nginx'
Verzeichnisinhalt in Echtzeit verfolgen:
watch -d ls -la /var/log
Zusammenfassung
Der watch-Befehl führt einen Befehl wiederholt aus und zeigt die Ausgabe im Terminal an. Mit -n steuerst du das Intervall, mit -d werden Änderungen hervorgehoben. Für die vollständige Optionsliste verwende man watch.