watch — Befehle periodisch wiederholen und Ausgabe live beobachten

Praxis-Guide zu watch: Befehle in festen Intervallen wiederholen und die Ausgabe live verfolgen — Intervall, Diff-Hervorhebung und Exit-Bedingungen.

watch führt einen Befehl in festen Abständen immer wieder aus und zeigt dir dabei nur die jeweils aktuelle Ausgabe – ideal, um sich ändernde Daten wie Plattenbelegung, Prozesslisten, Netzwerkverbindungen oder den Status eines Deployments live im Blick zu behalten. Standardmäßig wiederholt watch alle zwei Sekunden; mit wenigen Flags steuerst du das Intervall, hebst Änderungen hervor oder beendest die Schleife automatisch. Dieser Guide zeigt dir die Optionen und Muster, die du im Alltag wirklich brauchst.

Grundlagen

watch <command> — Führt einen Befehl alle 2 Sekunden aus (Standardintervall).

watch date

watch -n <seconds> <command> — Führt den Befehl in einem eigenen Intervall aus.

watch -n 5 df -h

watch -n 0.5 <command> — Führt den Befehl jede halbe Sekunde aus (Sub-Sekunden-Intervalle).

watch -n 0.5 'cat /proc/loadavg'

watch '<command1> | <command2>' — Beobachtet eine Pipe-Kette (in Anführungszeichen setzen).

watch 'ps aux | grep nginx | wc -l'

Anzeigeoptionen

watch -d <command> — Hebt Unterschiede zwischen den Durchläufen hervor.

watch -d free -m

watch -d=permanent <command> — Hebt alle Änderungen seit dem ersten Durchlauf dauerhaft hervor (kumulativ).

watch -d=permanent 'ls -la /tmp'

watch -t <command> — Blendet die Kopfzeile aus (kein Titel, Intervall oder Befehl).

watch -t date

watch --color <command> — Erhält ANSI-Farbcodes in der Ausgabe.

watch --color 'ls --color=always -la'

Exit-Bedingungen

watch -g <command> — Beendet sich, sobald sich die Ausgabe ändert.

watch -g 'ls /tmp/upload/'

watch -e <command> — Beendet sich bei einem Fehler (friert die Ausgabe ein und wartet auf einen Tastendruck).

watch -e 'curl -sf http://localhost:8080/health'

watch -b <command> — Gibt einen Signalton aus, wenn der Befehl einen Exit-Code ungleich null zurückgibt.

watch -b 'ping -c 1 -W 1 server.example.com'

Typische Anwendungsfälle

watch -n 1 'kubectl get pods' — Überwacht den Status von Kubernetes-Pods.

watch -n 1 'kubectl get pods -n production'

watch -d 'df -h' — Überwacht die Plattenbelegung mit Hervorhebung von Änderungen.

watch -d 'df -h'

watch -n 2 'docker ps' — Überwacht laufende Docker-Container.

watch -n 2 'docker ps --format "table {{.Names}}	{{.Status}}"'

watch -n 5 'ss -tlnp' — Überwacht lauschende Ports.

watch -n 5 'ss -tlnp'

watch -n 1 'cat /proc/net/dev' — Überwacht den Datenverkehr der Netzwerkschnittstellen in Echtzeit.

watch -n 1 'cat /proc/net/dev'

watch -g 'checksum.sh' — Wartet, bis sich eine Datei ändert (beendet sich bei Änderung).

watch -g 'md5sum deploy.tar.gz'

watch -n 10 'curl -so /dev/null -w "%{http_code}" <url>' — Überwacht den HTTP-Statuscode eines Endpunkts.

watch -n 10 'curl -so /dev/null -w "%{http_code}" http://localhost:8080/health'

Fazit

watch macht aus jedem Statusbefehl ein Live-Dashboard, ohne dass du eine while-Schleife schreiben musst – für den Alltag genügen meist -n fürs Intervall, -d für hervorgehobene Änderungen und -g, um bei einer Änderung automatisch abzubrechen. Zwei Dinge solltest du dabei im Kopf behalten: Sobald Pipes, Variablen oder Glob-Muster im Spiel sind, gehört der Befehl in Anführungszeichen (watch '…') oder hinter watch bash -c '…', sonst wertet deine aktuelle Shell ihn nur einmal aus und watch wiederholt anschließend nur das eingefrorene Ergebnis. Und weil watch den Befehl wieder und wieder ausführt, gehören ausschließlich lesende Status- und Abfragebefehle hinein – niemals etwas, das Daten verändert oder löscht.

Verwandte Kommandos

  • top – interaktive Echtzeit-Übersicht über Prozesse und Systemlast
  • ps – Momentaufnahme der laufenden Prozesse
  • journalctl – Logs des systemd-Journals abfragen und live verfolgen