GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Watch:Unix-Befehle oder Shell-Skripte alle N Sekunden wiederholen

Frage: Manchmal möchte ich einen Befehl (oder ein Shell-Skript) häufig (alle paar Sekunden) wiederholen. Gibt es einen besseren Weg, einen Unix-Befehl alle n Sekunden auszuführen (anstatt denselben Befehl immer wieder manuell einzugeben)?

Antwort: Mit dem Watch-Befehl können Sie einen Befehl ausführen und seine Ausgabe alle paar Sekunden anzeigen. Dies ist sehr hilfreich bei der Überwachung der Speichernutzung, Festplattennutzung usw.,

Sie können jeden Unix-Befehl mit dem Watch-Befehl ausführen. Der Überwachungsbefehl wird ausgeführt, bis Sie ihn entweder mit STRG+C beenden oder den Prozess beenden.

Beispiel 1:Mit watch ls auf eine Dateierstellung warten

Wenn Sie erwarten, dass eine Datei von einem Hintergrundprozess erstellt wird, oder wenn Sie erwarten, dass eine Protokolldatei immer größer wird, müssen Sie möglicherweise den Befehl ls mehrmals ausführen. Stattdessen können Sie den Befehl watch verwenden, der den Befehl ls alle 2 Sekunden ausführt, wie unten gezeigt.

$ watch ls
Every 2.0s: ls                                             Thu Apr 15 16:11:58 2010
flash-plugin-10.0.45.2-release.i386.rpm
install_flash_player_10_linux.deb

Die erste Zeile der Ausgabe des watch-Befehls enthält die folgenden Header-Informationen:

  • Alle 2.0s :Zeitintervall. d.h. ls wird alle 2 Sekunden ausgeführt.
  • ls :Unix-Befehl, der alle 2 Sekunden ausgeführt wird.
  • Thu Apr 15 16:11:58 2010 :das aktuelle Datum und die aktuelle Uhrzeit.

Die restlichen Zeilen sind die Ausgabe des Befehls, den watch ausführt. In diesem Beispiel wird die Ausgabe des Befehls ls angezeigt.

Beispiel 2:Details zum verwendeten und freien Speicher anzeigen (mit hervorgehobenen Unterschieden)

Die Option -d hebt den Unterschied zwischen aufeinanderfolgenden Updates hervor.

$ watch -d free -om
Every 2.0s: free -om                               Thu Apr 15 16:11:59 2010

             total	 used       free     shared    buffers     cached
Mem:           992        878        114          0        135        379
Swap:         4095          8       4087

Wenn sich die Speicherausgabe auf Ihrem System nicht ändert, versuchen Sie die Option -d mit dem Datumsbefehl, um zu sehen, wie es funktioniert.

$ watch -d date

Hinweis :Wussten Sie, dass Sie die Änderungen in der oberen Befehlsausgabe hervorheben können?

Beispiel 3:Verfügbaren Speicherplatz anzeigen (alle 10 Sekunden wiederholen)

Standardmäßig verwendet der Watch-Befehl ein 2-Sekunden-Intervall, Sie können es mit der Option -n ändern. Das folgende Beispiel führt den Befehl df -h alle 10 Sekunden aus.

$ watch -n 10 df -h
Every 10.0s: df -h                                Thu Apr 15 16:12:26 2010

Filesystem            Size  Used Avail Use% Mounted on
/dev/sda7              30G  8.6G   20G  31% /
tmpfs                 497M  964K  496M   1% /dev/shm
/dev/sda6             194M   22M  163M  12% /boot

Beispiel 4:Watchheader in der Ausgabe unterdrücken

Sie können die 1. Zeile der Watch-Befehlsausgabe mit der Option -t wie unten gezeigt unterdrücken.

$ watch -t ls
flash-plugin-10.0.45.2-release.i386.rpm
install_flash_player_10_linux.deb

Linux
  1. Überwachen Sie Befehle und Aufgaben mit dem Linux-Überwachungsbefehl

  2. 20 wichtige Linux-Befehle für jeden Benutzer

  3. 10 Befehle, die jeder Linux-Benutzer kennen sollte

  4. Wiederholen Sie einen Unix-Befehl alle X Sekunden für immer?

  5. A bis Z Linux-Befehle

100 nützliche Vim-Befehle, die Sie jeden Tag brauchen werden

Verwenden des Watch-Befehls unter Linux

mkdir-Befehl unter Linux/Unix

Grep-Befehl unter Linux/UNIX

ls-Befehl unter Linux/UNIX

cp-Befehl unter Linux/UNIX