# 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.

Source: https://www.jpkc.com/db/cheatsheets/shell-system/watch/

<!-- PROSE:intro -->
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.
<!-- PROSE:intro:end -->

## Grundlagen

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

```bash
watch date
```

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

```bash
watch -n 5 df -h
```

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

```bash
watch -n 0.5 'cat /proc/loadavg'
```

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

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

## Anzeigeoptionen

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

```bash
watch -d free -m
```

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

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

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

```bash
watch -t date
```

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

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

## Exit-Bedingungen

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

```bash
watch -g 'ls /tmp/upload/'
```

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

```bash
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.

```bash
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.

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

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

```bash
watch -d 'df -h'
```

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

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

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

```bash
watch -n 5 'ss -tlnp'
```

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

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

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

```bash
watch -g 'md5sum deploy.tar.gz'
```

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

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

<!-- PROSE:outro -->
## 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.

## Weiterführende Links

- [man7.org: watch(1)](https://man7.org/linux/man-pages/man1/watch.1.html) – offizielle Handbuchseite mit allen Optionen und Beispielen
- [procps-ng auf GitLab](https://gitlab.com/procps-ng/procps) – Quellprojekt, das watch und weitere Systemwerkzeuge bereitstellt
<!-- PROSE:outro:end -->

## Verwandte Kommandos

- [top](https://www.jpkc.com/db/cheatsheets/shell-system/top/) – interaktive Echtzeit-Übersicht über Prozesse und Systemlast
- [ps](https://www.jpkc.com/db/cheatsheets/shell-system/ps/) – Momentaufnahme der laufenden Prozesse
- [journalctl](https://www.jpkc.com/db/cheatsheets/shell-system/journalctl/) – Logs des systemd-Journals abfragen und live verfolgen

