Come eseguire un Cron Job ogni 10 secondi in Linux?

Pubblicato 17 ottobre 2024

Problema: Eseguire Lavori Cron Più Frequentemente Di Una Volta Al Minuto

I lavori cron in Linux di solito vengono eseguiti a intervalli di un minuto o più. A volte, è necessario eseguire attività più spesso, come ogni 10 secondi. Questo può essere un problema per le attività che devono essere eseguite quasi istantaneamente.

Utilizzo Di Più Voci Cron Con Comandi Sleep

Configurazione Dei Lavori Cron

Per eseguire un'attività ogni 10 secondi in Linux, puoi utilizzare più voci cron con comandi sleep. Questo metodo utilizza sei voci cron che vengono eseguite ogni minuto, ciascuna con una diversa durata di sleep. Spaziando i tempi di esecuzione, puoi ottenere un intervallo di 10 secondi tra ogni esecuzione dell'attività.

Il processo comprende:

  1. Creazione di sei voci cron che vengono eseguite ogni minuto
  2. Aggiunta di comandi sleep a ciascuna voce per sfalsare il tempo di esecuzione
  3. Utilizzo dello stesso comando per ogni voce

Ecco un esempio di queste voci cron:

* * * * * /usr/bin/wget http://api.us/application/
* * * * * sleep 10; /usr/bin/wget http://api.us/application/
* * * * * sleep 20; /usr/bin/wget http://api.us/application/
* * * * * sleep 30; /usr/bin/wget http://api.us/application/
* * * * * sleep 40; /usr/bin/wget http://api.us/application/
* * * * * sleep 50; /usr/bin/wget http://api.us/application/

In questa configurazione, la prima voce viene eseguita all'inizio di ogni minuto. Le voci successive utilizzano comandi sleep per ritardare la loro esecuzione di 10, 20, 30, 40 e 50 secondi. Questo crea uno schema in cui il comando viene eseguito ogni 10 secondi durante ogni minuto.

Questo metodo ti aiuta a aggirare il limite di un minuto di cron ed eseguire la tua attività a intervalli di 10 secondi.

Suggerimento: Registrazione dell'Esecuzione dei Lavori Cron

Per monitorare l'esecuzione dei tuoi lavori cron e verificare che vengano eseguiti agli intervalli corretti, aggiungi un comando di registrazione a ciascuna voce. Ad esempio:

* * * * * /usr/bin/wget http://api.us/application/ && echo "$(date): Lavoro eseguito" >> /var/log/cron_job.log
* * * * * sleep 10; /usr/bin/wget http://api.us/application/ && echo "$(date): Lavoro eseguito" >> /var/log/cron_job.log

Questo creerà un file di log con timestamp per ogni esecuzione del lavoro, aiutandoti a tracciare e debuggare la tua configurazione cron.