Menu

Generatore di espressioni cron

Crea, decodifica e visualizza pianificazioni cron con le prossime esecuzioni.

Di Nethanel Bar, Co-founder & CEO

Ultimo aggiornamento

Vuoi imparare a programmare sul serio?

Coddy ti insegna facendoti scrivere codice vero nel browser: lezioni interattive, feedback immediato e aiuto dall'AI quando ti blocchi.

Cos'è un'espressione cron?

Un'espressione cron è un modo compatto per descrivere una pianificazione ricorrente. È la stessa sintassi usata da cron di Unix, lo scheduler originale di Linux, e si è diffusa in quasi tutti gli esecutori di job che incontrerai: CronJob di Kubernetes, schedule di GitHub Actions, AWS EventBridge, Cloudflare Workers, Vercel cron e la maggior parte delle piattaforme CI/CD.

Il formato sembra ostico ma in realtà sono solo cinque campi separati da spazi: minuto, ora, giorno del mese, mese, giorno della settimana. Ogni campo è un numero, una lista (1,15), un intervallo (9-17), un passo (*/5) oppure un jolly (*). Un buon strumento per cron trasforma l'espressione in una frase leggibile e mostra i prossimi orari di esecuzione, così puoi verificarla prima del deploy.

Alcune piattaforme estendono la sintassi base a 5 campi con un campo *secondi* iniziale (Quartz, Spring, Kubernetes a 6 campi) o con un campo *anno* finale. Controlla sempre quale formato accetta il tuo scheduler prima di incollare un'espressione.

Cosa imparerai creando pianificazioni cron

  • Un'espressione cron standard ha 5 campi: minuto, ora, giorno del mese, mese, giorno della settimana.
  • * significa "ogni valore" per quel campo: è il motivo più comune per cui una pianificazione scatta più spesso del previsto.
  • */N significa "ogni N unità": */5 nel campo dei minuti vuol dire "ogni 5 minuti".
  • Giorno del mese e giorno della settimana interagiscono: impostarli entrambi restringe la pianificazione, ma nel cron Unix classico impostare uno dei due a * mentre l'altro è specifico è il modo più sicuro per esprimere regole solo per i giorni della settimana o solo mensili.

Come scrivere un'espressione cron passo dopo passo

  1. Parti da un preset

    Scegli un preset vicino a quello che ti serve: Ogni minuto, Ogni ora, Ogni giorno alle 09:00, Giorni feriali alle 09:00, Ogni mese. L'espressione compare nell'editor.

  2. Regola ogni campo

    Modifica minuto, ora, giorno del mese, mese e giorno della settimana. Usa * per qualsiasi valore, liste separate da virgole, intervalli (9-17) o passi (*/15).

  3. Leggi la spiegazione in italiano

    Lo strumento trasforma la tua espressione in una frase (Alle 09:00 nei giorni feriali). Se la frase non corrisponde a quello che volevi, l'espressione è sbagliata.

  4. Guarda in anteprima le prossime esecuzioni

    Verifica i prossimi 5-10 orari di esecuzione nel tuo fuso orario. Fai attenzione ai cambi dell'ora legale se la pianificazione cade vicino al passaggio.

  5. Copiala nel tuo scheduler

    Inserisci l'espressione nel tuo crontab, nel workflow di GitHub Actions, nel CronJob di Kubernetes o in qualunque scheduler tu stia usando.

Campi cron in breve

I cinque campi di un'espressione cron standard, in ordine. Riferimento: la pagina man crontab(5) POSIX.

PosizioneCampoIntervalloSpeciali
1Minuto0-59* , - /
2Ora0-23* , - /
3Giorno del mese1-31* , - / ? (alcuni dialetti)
4Mese1-12 oppure da JAN a DEC* , - /
5Giorno della settimana0-6 (Dom=0) oppure da SUN a SAT* , - /

Esempi di espressioni cron da provare

Ogni 5 minuti

Espressione

*/5 * * * *

Si legge

Ogni 5 minuti: allo scoccare dell'ora e poi ogni 5 minuti.

I valori a passo (*/5) sono il modo più semplice per esprimere "ogni N" senza elencare tutti i numeri. Comuni per health check e job di polling.

Giorni feriali alle 9

Espressione

0 9 * * 1-5

Si legge

Alle 09:00 dal lunedì al venerdì.

L'intervallo 1-5 nel giorno della settimana significa dal lunedì al venerdì. Usalo per promemoria in orario d'ufficio e riepiloghi solo nei giorni feriali.

Il primo giorno di ogni mese a mezzanotte

Espressione

0 0 1 * *

Si legge

Alle 00:00 del giorno 1 di ogni mese.

Giorno del mese 1 più * in tutti gli altri campi ti dà un vero job mensile. Comune per fatturazione, report e attività di rotazione.

Due volte all'ora, in orario d'ufficio, nei giorni feriali

Espressione

0,30 9-17 * * 1-5

Si legge

Al minuto 0 e 30 tra le 09:00 e le 17:00, dal lunedì al venerdì.

Lista con virgola (0,30) più un intervallo (9-17) più i giorni feriali. È il tipo di pianificazione che useresti per un aggiornamento BI o per svuotare una coda che conta solo in orario di lavoro.

Errori comuni con cron

  • Dimenticare il fuso orario. La maggior parte dei demoni cron scatta nel fuso orario del *server*, non nel tuo. Imposta il fuso orario in modo esplicito quando la piattaforma lo supporta.
  • Impostare sia il giorno del mese sia il giorno della settimana. Nel cron Unix classico la pianificazione scatta in un giorno che corrisponde a *uno dei due*, cosa che la prima volta sorprende quasi tutti.
  • Usare */45 aspettandosi che scatti ogni 45 minuti. I valori a passo si calcolano a partire da 0, quindi */45 scatta al minuto 0 e al 45, non a un vero intervallo di 45 minuti.
  • Non guardare in anteprima le prossime esecuzioni prima del deploy. Un'espressione cron quasi giusta può scattare 60 volte più spesso del previsto.
  • Dimenticare i cambi dell'ora legale. Una pianificazione 0 2 * * * può girare due volte nel giorno in cui l'orologio torna indietro, e per niente quando va avanti.

FAQ sulle espressioni cron

Come si scrive un'espressione cron?
Un'espressione cron standard ha cinque campi separati da spazi: minuto, ora, giorno del mese, mese, giorno della settimana. Usa * per *ogni valore*, un numero per un valore esatto, una lista con virgole (1,15), un intervallo (9-17) o un passo (*/5).
Cosa significa */5 * * * *?
Significa "ogni 5 minuti". Il */5 nel campo dei minuti scatta al minuto 0 e poi ogni 5 minuti (0, 5, 10, 15, …, 55), e il * in tutti gli altri campi significa che scatta ogni ora, ogni giorno, ogni mese e in ogni giorno della settimana.
Che fuso orario usa cron?
Di default cron usa il fuso orario del sistema su cui gira. La maggior parte degli scheduler cloud permette di impostare il fuso orario in modo esplicito (TZ=Europe/Berlin, le schedule expression di AWS e così via). Nel dubbio, salva le pianificazioni in UTC.
Un'espressione cron può girare ogni secondo?
Il cron standard a 5 campi ha il minuto come unità più piccola, quindi la risoluzione massima è ogni minuto. Quartz cron, Spring cron e alcune versioni di Kubernetes aggiungono un sesto campo *secondi* per pianificazioni sotto il minuto.
Che differenza c'è tra 0 0 * * 0 e 0 0 * * 7?
Entrambe descrivono la domenica a mezzanotte. Nella maggior parte delle implementazioni di cron il giorno della settimana va da 0 a 6 (da domenica a sabato), ma per compatibilità con alcuni dialetti anche 7 viene accettato come domenica.

Scopri di più

Altri strumenti per sviluppatori

Illustrazione dei linguaggi di programmazione di Coddy

Impara a programmare con Coddy

INIZIA