Come eseguire un cron job ogni 10, 20 e 30 secondi in Linux


Breve: il cron job scheduler non supporta la pianificazione dei processi da eseguire a intervalli di secondi. In questo articolo, ti mostreremo un semplice trucco per aiutarti a eseguire un cron job ogni 30 secondi o x secondi in Linux.

Sei nuovo nel programmatore di lavori cron e vuoi eseguire un lavoro ogni 30 secondi? Sfortunatamente, cron non lo consente. Non è possibile pianificare l'esecuzione di un processo cron ogni x secondo. Cron supporta solo un intervallo di tempo di almeno 60 secondi (ovvero 1 minuto). Per eseguire un cron job ogni 30 secondi, è necessario utilizzare il trucco che abbiamo spiegato di seguito.

In questa guida tratteremo anche molti altri esempi per eseguire un lavoro o un comando o uno script ogni x secondo. Ma iniziamo spiegando come eseguire un cron job ogni 30 secondi in Linux.

Esegui Cron Job ogni 30 secondi in Linux

Per raggiungere l'attività di cui sopra, crea due voci nel crontab. Il primo lavoro eseguirà il comando date dopo ogni minuto (60 secondi), quindi la seconda voce utilizza il comando sleep per ritardare per un periodo di tempo specificato (30 secondi in questo caso) e richiamare nuovamente il comando date.

Devi aggiungere le seguenti voci nel crontab (tabella cron) e aprirlo per la modifica utilizzando il seguente comando crontab (il flag -e abilita la modifica):

# crontab -e

Aggiungi le seguenti voci cron al file.

* * * * * date>> /tmp/date.log
* * * * * sleep 30; date>> /tmp/date.log 

Ora, se controlli il contenuto del file /tmp/date.log, dovresti vedere che il comando date viene eseguito ogni 30 secondi. Possiamo usare il comando cat per visualizzare il file e controllare la colonna dell'ora per confermare, come segue:

$ cat /tmp/date.log

Puoi anche guardare il file che viene aggiornato in tempo reale. Per farlo, usa il comando tail con il flag -f.

$ tail -f /tmp/date.log

Esegui Cron Job ogni 10 secondi in Linux

Diamo un'occhiata ad altri esempi. Questo mostra come eseguire un cron job ogni 10 secondi. Il trucco è semplicemente giocare con il numero di secondi del comando sleep:

* * * * * date>> /tmp/date.log
* * * * * sleep 10; date>> /tmp/date.log
* * * * * sleep 20; date>> /tmp/date.log
* * * * * sleep 30; date>> /tmp/date.log
* * * * * sleep 40; date>> /tmp/date.log
* * * * * sleep 50; date>> /tmp/date.log

Ancora una volta se osserviamo il file /tmp/date.log, dovrebbe essere aggiornato ogni 10 secondi in base alle voci del crontab sopra:

$ tail -f  /tmp/date.log

Ecco un altro esempio di esecuzione del comando date ogni 15 secondi:

* * * * * date>> /tmp/date.log
* * * * * sleep 15; date>> /tmp/date.log
* * * * * sleep 30; date>> /tmp/date.log
* * * * * sleep 45; date>> /tmp/date.log

Infine, per eseguire un cron job ogni 20 secondi, puoi avere qualcosa del genere:

* * * * * date>> /tmp/date.log
* * * * * sleep 20; date>> /tmp/date.log
* * * * * sleep 40; date>> /tmp/date.log

Inoltre, qui ci sono altri articoli per imparare la pianificazione del lavoro usando cron:

  • Come creare e gestire i Cron Job su Linux
  • Cron vs Anacron: come programmare i lavori utilizzando Anacron su Linux

Ora lo sai! Ti abbiamo mostrato diversi esempi per eseguire un cron job ogni x secondo in Linux. Leggi le pagine man di cron (eseguendo i comandi man cron e man crontab) per maggiori informazioni.

Se conosci suggerimenti o trucchi utili per i comandi cron, condividili nei commenti qui sotto.