Einführung
Um einen Befehl oder Job in regelmäßigen Zeitabständen wiederholt auszuführen, während Sie unter Linux arbeiten, können Sie Cron-Jobs oder Bash-Skripte verwenden. Linux bietet jedoch auch eine einfachere, integrierte Lösung – die watch
Befehl.
In diesem Tutorial lernen Sie die watch
kennen Befehlssyntax, wie es funktioniert und die verschiedenen Dinge, die es Ihnen helfen kann.
Voraussetzungen
- Ein System, auf dem eine Linux-Distribution ausgeführt wird (erfahren Sie, wie Sie Ubuntu 20.04 installieren, wie Sie CentOS 7 installieren oder wie Sie Arch Linux installieren)
- Ein Konto mit sudo-Berechtigungen
- Zugriff auf das Terminalfenster/die Befehlszeile
Linux watch-Befehlsübersicht
Die watch
command ist ein integriertes Linux-Dienstprogramm, das zum Ausführen benutzerdefinierter Befehle in regelmäßigen Abständen verwendet wird. Es löscht vorübergehend den gesamten Terminalinhalt und zeigt die Ausgabe des angehängten Befehls zusammen mit dem aktuellen Systemdatum und der aktuellen Systemzeit an.
Standardmäßig ist die watch
Der Befehl aktualisiert die Ausgabe alle zwei Sekunden. Drücken Sie Strg+C um die Befehlsausgabe zu verlassen.
Die watch
Der Befehl ist nützlich, wenn Sie Änderungen in einer Befehlsausgabe im Laufe der Zeit überwachen müssen. Dazu gehören Festplattennutzung, Systemverfügbarkeit oder Tracking-Fehler.
Linux Watch-Befehlssyntax
Die watch
Befehl verwendet die folgende Syntax:
watch [option] [command]
Wo:
[option]
:Das Hinzufügen einer Option ändert die Art und Weise, wiewatch
Befehl verhält. Die verfügbaren Optionen sind unten aufgeführt.[command]
:Ein benutzerdefinierter Befehl, den Sie wiederholt ausführen möchten.
Die watch
Zu den Befehlsoptionen gehören:
-n , --interval | Ermöglicht es Ihnen, das Intervall zwischen Ausgabeaktualisierungen festzulegen. |
-d , --differences | Hebt die Unterschiede zwischen Ausgabeaktualisierungen hervor. |
-g , --chgexit | Beendet die watch Befehl, wenn sich die Ausgabe des benutzerdefinierten Befehls ändert. |
-t , --no-title | Entfernt die Kopfzeile, die das Intervall, den Befehl und die aktuelle Uhrzeit und das aktuelle Datum anzeigt. |
-b , --beep | Spielt einen akustischen Alarm (Piepton) ab, wenn der Befehl mit einem Fehler beendet wird. |
-p , --precise | Versucht, den Befehl nach genau der durch --interval definierten Anzahl von Sekunden auszuführen Möglichkeit. |
-e , --errexit | Stoppt die Aktualisierung der Ausgabe bei einem Fehler und beendet den Befehl nach einem Tastendruck. |
-c , --color | Interpretiert ANSI-Farb- und Stilsequenzen. |
-x , --exec | Übergibt den benutzerdefinierten Befehl an exec , wodurch der Bedarf an zusätzlichen Zitaten reduziert wird. |
-w , --no-linewrap | Schaltet den Zeilenumbruch aus und schneidet stattdessen lange Zeilen ab. |
-h , --help | Zeigt Hilfetext und Exits an. |
-v , --version | Zeigt Versionsinformationen an und beendet sich. |
Linux Watch-Befehlsbeispiele
Hier sind einige Möglichkeiten, wie Sie die watch
verwenden können Befehlsoptionen, um unterschiedliche Ergebnisse zu erzielen:
Befehl mit benutzerdefiniertem Intervall ausführen
Legen Sie ein benutzerdefiniertes Intervall fest, um einen benutzerdefinierten Befehl auszuführen, und zeigen Sie die Ausgabe mit -n
an oder --interval
Möglichkeit:
watch -n [interval in seconds] [command]
Um beispielsweise die Systemzeit und das Datum alle 5 Sekunden anzuzeigen, führen Sie Folgendes aus:
watch -n 5 date
Änderungen zwischen Updates hervorheben
Verwenden Sie das -d
oder --difference
Option zum Hervorheben von Änderungen zwischen aufeinanderfolgenden Ausgabeaktualisierungen:
watch -d [command]
Zeigen Sie beispielsweise das Systemdatum und die Uhrzeit im standardmäßigen 2-Sekunden-Intervall an, wobei die Änderungen hervorgehoben sind:
watch -d date
Übergeben Sie =cumulative
zum -d
Option, wenn Sie möchten, dass alle Werte, die sich jemals geändert haben, hervorgehoben bleiben:
watch -d=cumulative date
Beenden bei Änderung
Das -g
oder --chgexit
Option bewirkt, dass der Watch-Befehl beendet wird, wenn sich die Ausgabe ändert:
watch -g [command]
Beispielsweise überwacht das Hinzufügen des Befehls free den Speicherverbrauch Ihres Systems und wird beendet, wenn sich der Wert ändert:
watch -g free
Verstecken Sie die Befehlskopfzeile der Uhr
Deaktivieren Sie den Header mit der Intervallzeit, dem benutzerdefinierten Befehl und der aktuellen Systemzeit in watch
Befehlsausgabe mit -t
oder --no-title
Möglichkeit:
watch -t [command]
Zurück zum Beispiel der Anzeige von Systemdatum und -zeit, diesmal ohne Header:
watch -t date
Warnung bei Fehler
Die watch
Der Befehl verwendet das beep-Paket, um einen akustischen Alarm abzuspielen, wenn die Ausgabeaktualisierung aufgrund eines Fehlers fehlschlägt. Verwenden Sie dazu das -b
oder --beep
Möglichkeit:
watch -b [command]
Komplexe Befehle verwenden
Die watch
Mit command können Sie auch komplexere benutzerdefinierte Befehle mit eigenen Argumenten und Optionen verwenden. Eine Möglichkeit, dies zu tun, ist die Verwendung des Backslash ('\' ) Symbol:
watch [options] \
Mit dem obigen Befehl gelangen Sie zur nächsten Zeile im Terminal, wo Sie den benutzerdefinierten Befehl hinzufügen müssen. Sobald Sie Enter drücken , es führt den Befehl aus. Zum Beispiel:
watch -n 5 \
echo "watch command example output"
Eine andere Möglichkeit besteht darin, den benutzerdefinierten Befehl in einfachen Anführungszeichen hinzuzufügen:
watch [options] '[command]'
Im obigen Beispiel lautet der Befehl:
watch -n 5 'echo "watch command example output"'