GNU/Linux >> Linux Esercitazione >  >> Linux

Guarda:ripeti i comandi Unix o gli script della shell ogni N secondi

Domanda: A volte voglio ripetere un comando (o uno script di shell) frequentemente (ogni pochi secondi). C'è un modo migliore per eseguire un comando unix ogni n secondi (invece di continuare a digitare lo stesso comando manualmente)?

Risposta: Usando il comando watch puoi eseguire un comando e visualizzarne l'output ogni pochi secondi. Questo è molto utile durante il monitoraggio dell'utilizzo della memoria, dell'utilizzo del disco ecc.,

Puoi eseguire qualsiasi comando Unix usando il comando watch. Il comando Watch verrà eseguito fino a quando non lo termini con CTRL+C o fino a quando non termini il processo.

Esempio 1:controllo della creazione di un file utilizzando watch ls

Quando ti aspetti che un file venga creato da un processo in background, o quando ti aspetti che un file di registro continui a crescere di dimensioni, potresti finire per eseguire il comando ls più volte. Invece, puoi usare il comando watch, che eseguirà il comando ls ogni 2 secondi come mostrato di seguito.

$ 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

La prima riga dell'output del comando watch contiene le seguenti informazioni di intestazione:

  • Ogni 2,0 s:intervallo di tempo. cioè ls verrà eseguito ogni 2 secondi.
  • ls :comando Unix che viene eseguito ogni 2 secondi.
  • Thu Apr 15 16:11:58 2010 :la data e l'ora correnti.

Il resto delle righe è l'output del comando che watch sta eseguendo. In questo esempio, mostra l'output del comando ls.

Esempio 2:Visualizza i dettagli della memoria utilizzata e libera (con le differenze evidenziate)

L'opzione -d evidenzia la differenza tra aggiornamenti successivi.

$ 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

Se l'output della memoria non cambia sul tuo sistema, prova l'opzione -d con il comando date per vedere come funziona.

$ watch -d date

Nota :sapevi che puoi evidenziare le modifiche nell'output del comando in alto?

Esempio 3:mostra lo spazio disponibile su disco (ripetere ogni 10 secondi)

Per impostazione predefinita, il comando watch utilizza un intervallo di 2 secondi, puoi cambiarlo usando l'opzione -n. L'esempio seguente esegue il comando df -h ogni 10 secondi.

$ 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

Esempio 4:sopprimi l'intestazione dell'orologio nell'output

Puoi sopprimere la prima riga dell'output del comando watch usando l'opzione -t come mostrato di seguito.

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

Linux
  1. Controlla i comandi e le attività con il comando watch di Linux

  2. 20 comandi Linux essenziali per ogni utente

  3. 10 comandi che ogni utente Linux dovrebbe conoscere

  4. Come eseguire o ripetere un comando Linux ogni X secondi per sempre

  5. Usare i tasti Vi per modificare i comandi della shell in Unix?

100 utili comandi Vim di cui avrai bisogno ogni giorno

Utilizzo del comando Watch in Linux

comando mkdir in Linux/Unix

Comando Grep in Linux/UNIX

comando ls in Linux/UNIX

comando cp in Linux/UNIX