Wiederholung von Linux-Befehlen

LinuxLinuxBeginner
Jetzt üben

💡 Dieser Artikel wurde von AI-Assistenten übersetzt. Um die englische Version anzuzeigen, können Sie hier klicken

Einführung

Der Befehl watch ist ein leistungsstarkes Hilfsmittel in Linux-Systemen, das es Benutzern ermöglicht, einen Befehl in regelmäßigen Abständen auszuführen und dessen Ausgabe im Terminal anzuzeigen. Dieses Tool ist besonders nützlich für die Überwachung von Systemressourcen, das Verfolgen von Dateiänderungen oder das Beobachten von Prozessen, die in regelmäßigen Intervallen Ausgaben produzieren.

In diesem Lab lernen Sie, wie Sie den Befehl watch verwenden können, um wiederholende Aufgaben zu automatisieren und Systemänderungen zu überwachen. Sie werden seine Syntax, Optionen und praktischen Anwendungen in realen Szenarien verstehen. Am Ende dieses Labs können Sie automatisierte Überwachungsprozesse einrichten, um Änderungen in Ihrem System effizient zu beobachten.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL linux(("Linux")) -.-> linux/BasicFileOperationsGroup(["Basic File Operations"]) linux(("Linux")) -.-> linux/FileandDirectoryManagementGroup(["File and Directory Management"]) linux(("Linux")) -.-> linux/TextProcessingGroup(["Text Processing"]) linux(("Linux")) -.-> linux/SystemInformationandMonitoringGroup(["System Information and Monitoring"]) linux(("Linux")) -.-> linux/VersionControlandTextEditorsGroup(["Version Control and Text Editors"]) linux/BasicFileOperationsGroup -.-> linux/ls("Content Listing") linux/BasicFileOperationsGroup -.-> linux/cat("File Concatenating") linux/BasicFileOperationsGroup -.-> linux/chmod("Permission Modifying") linux/FileandDirectoryManagementGroup -.-> linux/cd("Directory Changing") linux/TextProcessingGroup -.-> linux/grep("Pattern Searching") linux/SystemInformationandMonitoringGroup -.-> linux/watch("Command Repeating") linux/SystemInformationandMonitoringGroup -.-> linux/free("Memory Reporting") linux/VersionControlandTextEditorsGroup -.-> linux/nano("Simple Text Editing") subgraph Lab Skills linux/ls -.-> lab-271435{{"Wiederholung von Linux-Befehlen"}} linux/cat -.-> lab-271435{{"Wiederholung von Linux-Befehlen"}} linux/chmod -.-> lab-271435{{"Wiederholung von Linux-Befehlen"}} linux/cd -.-> lab-271435{{"Wiederholung von Linux-Befehlen"}} linux/grep -.-> lab-271435{{"Wiederholung von Linux-Befehlen"}} linux/watch -.-> lab-271435{{"Wiederholung von Linux-Befehlen"}} linux/free -.-> lab-271435{{"Wiederholung von Linux-Befehlen"}} linux/nano -.-> lab-271435{{"Wiederholung von Linux-Befehlen"}} end

Grundlagen des Watch-Befehls verstehen

Der Befehl watch ermöglicht es Ihnen, einen anderen Befehl in festgelegten Intervallen wiederholt auszuführen. Dies ist nützlich, wenn Sie eine sich ändernde Situation überwachen oder die Ausgabe eines Befehls im Laufe der Zeit beobachten müssen.

Beginnen wir mit der Erkundung der grundlegenden Syntax des watch-Befehls:

watch [options] command

Häufige Optionen sind:

  • -n <seconds>: Gibt das Aktualisierungsintervall in Sekunden an (Standard ist 2 Sekunden)
  • -d: Hebt Änderungen zwischen den Aktualisierungen hervor
  • -t: Deaktiviert die Kopfzeile, die den ausgeführten Befehl und die aktuelle Zeit anzeigt

Erstellen wir ein einfaches Beispiel, um zu demonstrieren, wie watch funktioniert. Zunächst wechseln Sie in Ihr Arbeitsverzeichnis:

cd ~/project

Jetzt erstellen wir ein einfaches Skript, das jedes Mal, wenn es ausgeführt wird, eine Zufallszahl generiert. Dies hilft uns, zu visualisieren, wie watch Befehle wiederholt. Erstellen Sie eine Datei namens generate_number.sh mit folgendem Inhalt:

nano ~/project/generate_number.sh

Im nano-Editor geben Sie folgenden Inhalt ein:

#!/bin/bash
echo "Random number: $((RANDOM % 100 + 1))" > ~/project/number.txt
cat ~/project/number.txt

Drücken Sie Ctrl+O und anschließend Enter, um die Datei zu speichern, und dann Ctrl+X, um nano zu verlassen.

Machen Sie nun das Skript ausführbar:

chmod +x ~/project/generate_number.sh

Lassen Sie uns das Skript einmal ausführen, um zu sehen, was es tut:

~/project/generate_number.sh

Die Ausgabe sollte eine Zufallszahl zwischen 1 und 100 anzeigen.

Jetzt verwenden wir den watch-Befehl, um dieses Skript alle 3 Sekunden auszuführen:

watch -n 3 ~/project/generate_number.sh

Sie werden sehen, dass die Befehlsausgabe alle 3 Sekunden aktualisiert wird und jedes Mal eine neue Zufallszahl anzeigt. Die Kopfzeile oben zeigt den ausgeführten Befehl und die aktuelle Zeit.

Um den watch-Befehl zu beenden, drücken Sie Ctrl+C.

Versuchen wir ein weiteres Beispiel mit der Option -d, um Änderungen hervorzuheben:

watch -n 3 -d ~/project/generate_number.sh

Beachten Sie, wie die Änderungen in der Ausgabe zwischen den Aktualisierungen hervorgehoben werden. Dies ist besonders nützlich, wenn Sie große Ausgaben überwachen und schnell feststellen müssen, was sich geändert hat.

Überwachung von Systemressourcen mit Watch

Eine der häufigsten Anwendungen des watch-Befehls ist die Überwachung von Systemressourcen. In diesem Schritt lernen Sie, wie Sie watch verwenden können, um einige grundlegende Systeminformationen zu überwachen.

Beginnen wir mit der Überwachung der Speicherauslastung Ihres Systems mithilfe des free-Befehls:

watch -n 2 free -m

Der obige Befehl zeigt die Speicherauslastung in Megabyte (-m) an und aktualisiert die Ausgabe alle 2 Sekunden. Dies ist nützlich, um den Speicherverbrauch im Laufe der Zeit zu überwachen.

Drücken Sie Ctrl+C, um den watch-Befehl zu beenden.

Jetzt überwachen wir die Festplattenauslastung:

watch -n 5 df -h

Dieser Befehl zeigt die Festplattenauslastung in einem menschenlesbaren Format (-h) an und aktualisiert alle 5 Sekunden. Sie können den verfügbaren und genutzten Speicherplatz auf verschiedenen Partitionen Ihres Systems sehen.

Drücken Sie Ctrl+C, um den watch-Befehl zu beenden.

Lassen Sie uns eine weitere nützliche Anwendung erkunden, indem wir die laufenden Prozesse auf Ihrem System überwachen:

watch -n 3 "ps aux | head -10"

Dieser Befehl zeigt die Top 10 Prozesse sortiert nach CPU-Auslastung an und aktualisiert alle 3 Sekunden. Beachten Sie, dass wir den komplexen Befehl in Anführungszeichen gesetzt haben, damit er korrekt mit watch funktioniert.

Drücken Sie Ctrl+C, um den watch-Befehl zu beenden.

Erstellen wir ein spezielles Verzeichnis, um Dateiänderungen zu überwachen:

mkdir -p ~/project/monitor_dir
touch ~/project/monitor_dir/file1.txt

Jetzt verwenden wir watch, um das Verzeichnis auf Änderungen zu überwachen:

watch -n 2 "ls -l ~/project/monitor_dir"

Lassen Sie diesen Befehl in Ihrem Terminal laufen. Öffnen Sie jetzt ein neues Terminal und erstellen Sie eine neue Datei im überwachten Verzeichnis:

touch ~/project/monitor_dir/file2.txt

Beobachten Sie, wie der watch-Befehl im ersten Terminal automatisch aktualisiert wird, um die neue Datei anzuzeigen. Dies zeigt, wie watch zur Echtzeitüberwachung von Verzeichnisänderungen verwendet werden kann.

Drücken Sie Ctrl+C im ersten Terminal, um den watch-Befehl zu beenden.

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.

Zusammenfassung

In diesem Lab haben Sie gelernt, wie Sie den watch-Befehl in Linux verwenden können, um Befehle in festgelegten Intervallen wiederholt auszuführen. Diese leistungsstarke Utility kann für verschiedene Überwachungsaufgaben eingesetzt werden und ist somit ein unverzichtbares Werkzeug für Systemadministratoren und Linux-Nutzer gleichermaßen.

Wichtige Konzepte, die in diesem Lab behandelt wurden:

  1. Grundlegende Verwendung des watch-Befehls mit verschiedenen Optionen wie -n, um das Intervall anzugeben, und -d, um Änderungen hervorzuheben.
  2. Überwachung von Systemressourcen wie Speicherauslastung, Festplattenspeicherplatz und laufende Prozesse mithilfe von watch in Kombination mit Befehlen wie free, df und ps.
  3. Verwendung von watch zur Echtzeitüberwachung von Datei- und Verzeichnisänderungen.
  4. Fortgeschrittene Funktionen von watch, einschließlich der Ausführung ohne Kopfzeilen (-t), des Beendens bei Änderungsdetektion (-g) und der Kombination mit anderen Befehlen für spezifische Überwachungsanforderungen.
  5. Ausführung von watch im Hintergrund und Umleitung seiner Ausgabe in Dateien.

Der watch-Befehl ist ein vielseitiges Werkzeug, das Ihnen Zeit und Mühe sparen kann, wenn Sie sich verändernde Situationen überwachen oder Befehlsausgaben automatisch aktualisieren müssen. Seine Fähigkeit, mit jedem Befehl zu arbeiten, der eine Terminalausgabe erzeugt, macht ihn für eine breite Palette von Szenarien einsetzbar, von der Systemadministration über die Anwendungsentwicklung bis hin zum Debugging.