GNU/Linux >> Linux Esercitazione >  >> Linux

Come eseguire un comando Linux ogni X secondi per sempre

Ti sei mai trovato in una situazione in cui dovevi eseguire ripetutamente un comando Linux specifico ogni pochi secondi? Bene, se non lo sai già, questo tutorial ti insegnerà come fare. Ovviamente puoi farlo usando uno script di shell o cron jobs . Puoi anche ripetere un comando Linux a un intervallo particolare senza doverlo eseguire manualmente ogni volta. Ecco dove Watch il comando torna utile. Questo comando può essere utilizzato per eseguire ripetutamente il comando dato e monitorare l'output. Per dirla in parole semplici, possiamo usare il comando Watch per eseguire un comando Linux ogni X secondi per sempre e continuerà a visualizzare l'output nella console finché non lo arresteremo manualmente premendo CTRL+C o terminare il processo o riavviare forzatamente il sistema. Per impostazione predefinita, il comando fornito verrà eseguito ogni 2 secondi, oppure puoi definire l'intervallo di tempo che preferisci.

Esegui un comando Linux ogni X secondi per sempre con il comando Watch

La sintassi di watch il comando è:

$ watch [options] command

Di seguito ho fornito alcuni esempi per insegnarti dove puoi usare watch comando per eseguire ripetutamente un comando Linux specifico.

Esempio 1:

Diciamo che vuoi eseguire il uptime comando ogni 2 secondi per monitorare il tempo di attività del tuo sistema. Per farlo, esegui semplicemente:

$ watch uptime

Risultato di esempio:

Every 2.0s: uptime                                     sk Wed Feb  9 20:14:46 2018

 20:15:46 up  2:38,  1 users,  load average: 0.41, 0.35, 0.46

Ecco,

  • Ogni 2 secondi: uptime - Il uptime il comando verrà eseguito ogni 2 secondi e visualizzerà il risultato.
  • sk - L'utente attualmente connesso
  • Mer 9 febbraio 20:14:46 2018 - La data e l'ora correnti in cui abbiamo eseguito il comando.

Questo continuerà a funzionare fino a quando non lo termini manualmente. Per uscire dal comando, premi CTRL+C .

Puoi anche salvare l'output del uptime comando in un file. Per farlo, esegui:

$ watch `uptime` > uptime.txt

Oppure

$ watch `uptime` > uptime.doc

Questo può essere utile quando desideri inviare il tempo di attività del tuo sistema a un supporto tecnico per ottenere assistenza.

Esempio 2:

Come ho detto prima, watch comando esegue un programma ogni 2 secondi per impostazione predefinita. Possiamo cambiarlo in un intervallo particolare, ad esempio 5 secondi, usando -n parametro.

Mostriamo l'utilizzo dello spazio su disco del file system ogni 5 secondi.

$ watch -n 5 df -h

Risultato di esempio:

Every 5.0s: df -h sk: Wed May 9 20:19:09 2018

Filesystem Size Used Avail Use% Mounted on
dev 3.9G 0 3.9G 0% /dev
run 3.9G 1.1M 3.9G 1% /run
/dev/sda2 457G 357G 77G 83% /
tmpfs 3.9G 32M 3.9G 1% /dev/shm
tmpfs 3.9G 0 3.9G 0% /sys/fs/cgroup
tmpfs 3.9G 36K 3.9G 1% /tmp
/dev/loop0 83M 83M 0 100% /var/lib/snapd/snap/core/4327
/dev/sda1 93M 55M 32M 64% /boot
tmpfs 789M 28K 789M 1% /run/user/1000

Per verificare se questo comando funziona davvero, crea o elimina qualsiasi file/cartella. Noterai che lo spazio libero è cambiato nell'output dopo aver creato o eliminato i file/le cartelle.

Esempio 3:

Per guardare il contenuto di un cambio di directory, esegui:

$ watch -d ls -l

Qui, il -d o --differences flag evidenzierà le differenze tra gli aggiornamenti successivi.

Risultato di esempio:

total 3857440
-rw------- 1 sk users 1921843200 Apr 25 22:47 bionic-desktop-amd64.iso
-rw------- 1 sk users 1921843200 Apr 25 03:02 bionic-desktop-amd64.iso.zs-old
drwxr-xr-x 2 sk users 12288 May 8 18:45 Desktop
drwxr-xr-x 2 sk users 4096 Apr 20 16:54 Documents
drwxr-xr-x 11 sk users 4096 May 9 19:56 Downloads
drwxr-xr-x 2 sk users 4096 Jan 7 2017 Music
drwxr-xr-x 5 sk users 12288 Mar 23 17:34 Pictures
drwxr-xr-x 2 sk users 4096 May 11 2016 Public

Inoltre, puoi visualizzare il contenuto di un cambio di directory che è di proprietà di un particolare utente (es. sk ).

$ watch -d 'ls -l | fgrep sk'

Questo può essere utile in un sistema multiutente.

Esempio 4:

Per visualizzare i dettagli della memoria, eseguire:

$ watch -d free -m

Esempio 5:

Per visualizzare l'output di du comando ogni 10 secondi, puoi usare:

$ watch -n 10 du -h

Risultato di esempio:

Every 10.0s: du -h                                                                                                                              sk: Wed May 9 20:26:43 2018
17M     ./.disruptive innovations sarl/bluegriffon/q87d9o6v.default/extensions
16K     ./.dooble/Dooble
4.0K    ./.dooble/Histories
176K    ./.dooble
4.0K    ./.PlayOnLinux/wine/mono
13M     ./.PlayOnLinux/wine/gecko
4.0K    ./.PlayOnLinux/wine/linux-amd64
652K    ./.PlayOnLinux/wine/linux-x86/1.3.19/share/wine/fonts
872K    ./.PlayOnLinux/wine/linux-x86/1.3.19/share/wine

Questo monitora l'utilizzo del disco ogni 10 secondi fino a quando non esci manualmente.

Per maggiori dettagli, ti consiglio di fare riferimento alle pagine man.

$ man watch

Esegui un comando Linux ogni X secondi per sempre con il ciclo While

Puoi farlo anche con l'aiuto di While ciclo.

Per ripetere un comando ogni 2 secondi per sempre, esegui:

$ while sleep 2 ; do uptime ; done

Esempio di output:

21:10:21 up 10:12,  1 user,  load average: 0.83, 0.71, 0.59
21:10:23 up 10:12,  1 user,  load average: 0.76, 0.70, 0.59
21:10:25 up 10:12,  1 user,  load average: 0.76, 0.70, 0.59
21:10:27 up 10:12,  1 user,  load average: 0.70, 0.68, 0.58
[...]

Conclusione

Ora sai come eseguire un comando ogni X secondi usando Watch comando. In genere, Watch comando viene utilizzato per monitorare l'utilizzo del disco e l'utilizzo della memoria. Si prega di non confondere questo comando con altri strumenti di monitoraggio. Questo comando ha lo scopo di eseguire un comando ogni secondo particolare per sempre, fino a quando non lo arresti manualmente.

Lettura correlata:

  • Come ripetere un comando finché non riesce in Linux

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

  2. Come registrare ogni comando della shell in Linux

  3. Come eseguire ripetutamente lo script bash ogni N secondi?

  4. Come configurare il lavoro CRON per l'esecuzione ogni 10 secondi in Linux?

  5. linux:come eseguire un comando in una determinata directory

Come eseguire un comando per un tempo specifico in Linux

Come eseguire periodicamente un comando in Linux usando Watch

Come eseguire più comandi Linux in un unico comando

Come eseguire più comandi Linux contemporaneamente nel terminale Linux

Utilizzo del comando Watch in Linux

Come posso guardare i feed delle mie webcam su Linux?