Generatore di Espressioni Cron

0-59

0-23

1-31

1-12

0-7 (0,7=Dom)

Avanti

La sintassi cron è concisa e facile da sbagliare: 0 */6 * * * viene eseguito ogni sei ore, mentre */6 0 * * * scatta dieci volte, solo durante la prima ora dopo la mezzanotte. Questo generatore ti consente di scegliere un programma visivamente (ogni 15 minuti, nei giorni feriali alle 9 del mattino, il 1° di ogni mese) e restituisce l’espressione esatta con una descrizione in linguaggio semplice del suo significato.

Come costruire un'espressione cron

  1. 1

    Scegli un preset o digita i campi

    Ogni minuto, ogni ora, ogni giorno a mezzanotte, ogni domenica e il 1° di ogni mese sono a un clic. Per tutto il resto, digita i valori direttamente nei cinque campi.

  2. 2

    Affina il programma

    Minuti, ore, giorni del mese, mesi, giorni della settimana specifici. Supportati intervalli (9-17), elenchi (1,15) e passi (*/6).

  3. 3

    Leggi l'espressione

    Il generatore produce sempre il formato cron standard a 5 campi, insieme a una descrizione in linguaggio semplice del programma.

  4. 4

    Verifica il dialetto

    I dialetti differiscono (Quartz, AWS EventBridge, Kubernetes). Conferma che l'espressione corrisponda a ciò che il tuo pianificatore si aspetta.

I cinque campi

*  *  *  *  *
│  │  │  │  │
│  │  │  │  └── Giorno della settimana (0-6, Domenica=0, o DOM-SAB)
│  │  │  └───── Mese (1-12, o GEN-DIC)
│  │  └──────── Giorno del mese (1-31)
│  └─────────── Ora (0-23)
└────────────── Minuto (0-59)

Ogni campo accetta:

  • Un numero specifico: 5
  • Un elenco: 1,15,30
  • Un intervallo: 9-17
  • Un passo: */10 (ogni 10) o 0-30/5 (ogni 5 da 0 a 30)
  • Carattere jolly: * (ogni valore)

Espressioni comuni

Pianificazione Espressione cron
Ogni minuto * * * * *
Ogni 15 minuti */15 * * * *
Ogni ora in punto 0 * * * *
Ogni 6 ore 0 */6 * * *
Ogni giorno alle 2:30 AM 30 2 * * *
Ogni giorno feriale alle 9 AM 0 9 * * 1-5
Ogni lunedì alle 8 AM 0 8 * * 1
Primo giorno di ogni mese, 3 AM 0 3 1 * *
Ogni 15 minuti, 9-17 giorni feriali */15 9-17 * * 1-5
A mezzogiorno il 1° e il 15° 0 12 1,15 * *
Ogni domenica a mezzanotte 0 0 * * 0

Il problema giorno-del-mese + giorno-della-settimana

Nel cron standard, se entrambi giorno-del-mese e giorno-della-settimana sono specificati (non *), il lavoro viene eseguito quando uno dei due corrisponde (OR, non AND). 0 0 1 * LUN viene eseguito il 1° di ogni mese e ogni lunedì, non solo quando il 1° è un lunedì.

Il cron Vixie e la maggior parte delle distribuzioni Linux seguono questa regola OR. Quartz (Java) e alcuni altri usano AND. In caso di dubbi, prova l’espressione con una esecuzione di prova o un job di test nel tuo pianificatore.

Differenze di dialetto

  • Cron standard (Linux): 5 campi, giorno-della-settimana 0-6 (Domenica = 0 o 7).
  • Quartz (Spring, app Java): 6-7 campi, con i secondi come campo 1 e anno opzionale. Giorno-della-settimana 1-7 (Domenica = 1).
  • Cron AWS EventBridge: 6 campi, con anno. Giorno-della-settimana e giorno-del-mese devono essere mutuamente esclusivi (uno deve essere ?).
  • GitHub Actions: cron standard a 5 campi, intervallo minimo di 5 minuti, solo UTC.
  • Kubernetes CronJob: cron standard a 5 campi, UTC per impostazione predefinita.

Conferma sempre quale dialetto utilizza il tuo pianificatore.

Fusi orari

Il cron classico viene eseguito nel fuso orario locale del server. Questo può causare problemi durante le transizioni DST: un lavoro alle 2:30 AM potrebbe essere eseguito due volte o non essere eseguito affatto nei giorni di cambio. I pianificatori moderni (timer systemd, Kubernetes, EventBridge) ti consentono di specificare esplicitamente il fuso orario, usa UTC a meno che tu non abbia un buon motivo per non farlo.

Domande frequenti

Ogni 5 unità del campo, a partire da 0. Nel campo dei minuti */5 si attiva ai minuti 0, 5, 10, 15, …, 55. È un’abbreviazione per 0,5,10,15,20,25,30,35,40,45,50,55.

Il cron non può esprimere intervalli arbitrari che non si dividono uniformemente in 60 minuti o 24 ore. Per 90 minuti, elenca gli orari specifici: 0 0,9 * * * combinato con linee aggiuntive, oppure passa a un pianificatore che supporta intervalli arbitrari (timer systemd, anacron).

A mezzanotte. L’ordine dei campi è minuto-ora, quindi 0 0 significa “minuto 0 dell’ora 0”. Mezzogiorno sarebbe 0 12 * * *.

Il cron standard lo salta, le esecuzioni mancate non vengono ripetute. Anacron cattura i lavori giornalieri/settimanali/mensili mancati al successivo avvio. I CronJobs di Kubernetes hanno startingDeadlineSeconds e concurrencyPolicy per gestire esplicitamente le finestre mancate.

Strumenti correlati