Fortgeschrittene Funktionen des Watch-Befehls
In diesem Schritt lernen Sie einige fortgeschrittene Funktionen des watch
-Befehls kennen, die Ihre Überwachungsaufgaben effizienter gestalten können.
Beginnen wir mit der Erkundung der Option -t
, die die Kopfzeile, welche den Befehl und die aktuelle Zeit anzeigt, deaktiviert:
watch -n 3 -t date
Beachten Sie, dass die Kopfzeile jetzt versteckt ist, was zu einer saubereren Anzeige führt, die sich nur auf die Befehlsausgabe konzentriert. Dies ist nützlich, wenn Sie den Bildschirmplatz für die Ausgabe maximieren möchten.
Drücken Sie Ctrl+C
, um zu beenden.
Als nächstes schauen wir uns an, wie man watch
mit der Option -g
oder --chgexit
verwendet. Diese Option lässt watch
beenden, wenn sich die Ausgabe des Befehls ändert:
touch ~/project/test_change.txt
watch -g -n 1 "ls -l ~/project/test_change.txt"
Während dieser Befehl läuft, öffnen Sie ein neues Terminal und ändern Sie die Datei:
echo "hello" > ~/project/test_change.txt
Der watch
-Befehl im ersten Terminal sollte automatisch beenden, wenn er die Änderung in der Datei erkennt.
Erstellen wir ein praktischeres Beispiel. Wir erstellen ein Skript, das eine Protokolldatei mit gelegentlichen Fehlern simuliert:
nano ~/project/simulate_logs.sh
Im nano-Editor geben Sie folgenden Inhalt ein:
#!/bin/bash
LOG_FILE=~/project/application.log
## Initialize log file
echo "Starting log simulation" > $LOG_FILE
## Generate simulated log entries
for i in {1..10}; do
echo "[$(date)] - INFO: Normal operation $i" >> $LOG_FILE
sleep 1
## Occasionally generate an error
if ((i % 3 == 0)); then
echo "[$(date)] - ERROR: Something went wrong!" >> $LOG_FILE
fi
done
echo "Log simulation complete" >> $LOG_FILE
Speichern Sie und verlassen Sie nano (Ctrl+O
, Enter, Ctrl+X
), dann machen Sie das Skript ausführbar:
chmod +x ~/project/simulate_logs.sh
Jetzt verwenden wir watch
mit grep
, um nach Fehlermeldungen in der Protokolldatei zu suchen:
watch -n 1 "grep ERROR ~/project/application.log || echo 'No errors found'"
In einem anderen Terminal führen Sie das Skript zur Protokolls simulation aus:
~/project/simulate_logs.sh
Beobachten Sie, wie das erste Terminal anzeigt, wenn Fehlermeldungen in der Protokolldatei auftauchen. Dies ist ein praktisches Beispiel für die Echtzeitüberwachung von Protokollen mit watch
.
Drücken Sie Ctrl+C
, um den watch-Befehl zu beenden.
Schließlich sehen wir uns an, wie man watch
im Hintergrund ausführt und seine Ausgabe in eine Datei leitet:
watch -n 5 date > ~/project/date_output.txt 2>&1 &
Dieser Befehl führt den watch
-Befehl im Hintergrund aus, aktualisiert das Datum alle 5 Sekunden und speichert die Ausgabe in einer Datei. Sie können den Dateiinhalt überprüfen:
cat ~/project/date_output.txt
Um den Hintergrundprozess von watch
zu stoppen, finden Sie seine PID und beenden Sie ihn:
ps aux | grep "watch -n 5 date"
kill <PID> ## Replace <PID> with the actual process ID number
Diese Beispiele zeigen die Vielseitigkeit des watch
-Befehls für verschiedene Überwachungsaufgaben.