internettoolbox
← Torna agli strumenti

Generatore di espressioni cron

Espressione

Ogni minuto

Campi

Preimpostazioni

Prossime 5 esecuzioni

  1. mer 23/09/2026, 14:00
  2. mer 23/09/2026, 14:01
  3. mer 23/09/2026, 14:02
  4. mer 23/09/2026, 14:03
  5. mer 23/09/2026, 14:04

Come funziona

Scrivi un'espressione cron nel campo in alto, oppure modifica i cinque campi uno per uno nella sezione Campi: l'espressione si aggiorna mentre scrivi. Ogni campo accetta i valori numerici e gli operatori abbreviati (* qualsiasi valore, */N ogni N, 1-5 intervallo, 1,3,5 elenco). Lo strumento mostra subito una descrizione in italiano (per `*/15 9-17 * * 1-5` legge “Ogni 15 minuti, nelle ore 9–17, di lunedì–venerdì”) e le prossime cinque esecuzioni con data e ora nel fuso orario del tuo dispositivo. Se l'espressione non è valida, un messaggio indica il campo e il problema, per esempio “Ora: 24 è fuori intervallo (0–23)”.

Un'espressione cron ha esattamente 5 campi separati da spazi. È lo stesso formato di crontab su Unix, dei CronJob di Kubernetes, di `schedule` in GitHub Actions, di GitLab CI e di quasi tutti gli scheduler che incontrerai:

┌──────── minuto (0–59) │ ┌────── ora (0–23) │ │ ┌──── giorno del mese (1–31) │ │ │ ┌── mese (1–12) │ │ │ │ ┌ giorno della settimana (0–6, domenica = 0) │ │ │ │ │ * * * * *

Qualche espressione da sapere a memoria: • `0 * * * *`: al minuto 0 di ogni ora • `0 0 * * *`: ogni giorno a mezzanotte • `*/15 * * * *`: ogni 15 minuti • `0 9 * * 1-5`: alle 9:00 dal lunedì al venerdì (giorni lavorativi) • `0 0 1 * *`: il primo di ogni mese a mezzanotte • `0 2 * * 0`: la domenica alle 2:00 (tipico per i backup settimanali)

La sezione Preimpostazioni carica con un clic le pianificazioni più comuni (ogni minuto, ogni 5 minuti, ogni ora, ogni giorno a mezzanotte o a mezzogiorno, ogni lunedì, il 1° del mese, il 1° gennaio), così non devi ricordare la sintassi esatta. Le prossime esecuzioni vengono calcolate scorrendo in avanti minuto per minuto da adesso, fino a trovarne cinque o fino a un anno di distanza.

Una trappola da conoscere: quando sono limitati sia il giorno del mese sia il giorno della settimana (nessuno dei due è *), il cron standard esegue il job se corrisponde uno dei due, non entrambi. Quindi `0 0 15 * 1` parte il 15 di ogni mese e anche ogni lunedì. L'anteprima delle prossime esecuzioni di questo strumento invece mostra solo i momenti in cui corrispondono entrambi, quindi in quel caso lascia uno dei due campi su * per avere una sola condizione.

Domande frequenti

Che formato cron usa?

Il formato crontab Unix standard a 5 campi: minuto, ora, giorno del mese, mese, giorno della settimana. Accetta gli operatori * (qualsiasi), */N (ogni N), intervalli come 1-5, elenchi come 1,3,5 e combinazioni come */2,15-20. È lo stesso formato di crontab, dei CronJob di Kubernetes, di GitHub Actions, di GitLab CI e di AWS EventBridge.

Come scrivo un cron ogni 5 minuti?

Con `*/5 * * * *`: */5 nel campo dei minuti vuol dire ogni minuto divisibile per 5 (0, 5, 10 e così via), e gli altri quattro campi su * valgono per ogni ora e ogni giorno. È anche una delle preimpostazioni: clicca Ogni 5 minuti e l'espressione compare nel campo in alto.

Sono supportati i secondi?

No, lo strumento lavora con 5 campi. Il cron a 6 campi (con una colonna iniziale per i secondi) è un'estensione di Quartz e Spring usata dagli scheduler Java. Se stai scrivendo un @Scheduled di Spring o un job Quartz, aggiungi tu lo 0 dei secondi davanti all'espressione.

Come vengono calcolate le prossime esecuzioni?

Lo strumento parte dal minuto successivo a adesso e avanza un minuto alla volta, controllando ogni campo, finché non trova cinque momenti che corrispondono o arriva a circa un anno. Date e ore sono nel fuso orario locale del tuo browser: per vederle in UTC cambia il fuso orario del sistema operativo e ricarica la pagina.

Che differenza c'è tra 0 0 * * 1-5 e */5 9-17 * * 1-5?

La prima parte a mezzanotte dal lunedì al venerdì (cinque volte a settimana). La seconda parte ogni 5 minuti dalle 9:00 alle 17:55, dal lunedì al venerdì (540 volte a settimana). Leggi sempre la descrizione sotto l'espressione prima di mandarla in produzione: la maggior parte degli errori si vede lì.

Perché il mio cron parte più spesso del previsto?

Quasi sempre è la regola dell'OR: quando sono limitati sia il giorno del mese sia il giorno della settimana, il cron standard esegue il job se corrisponde uno dei due. `0 0 15 * 1` vuol dire “a mezzanotte del 15 oppure a mezzanotte di ogni lunedì”, non “solo i lunedì che cadono il 15”. Lascia uno dei due campi su * per avere una sola condizione.

Funziona per Kubernetes CronJob, GitHub Actions e GitLab CI?

Sì, tutti e tre usano il formato standard a 5 campi. Una cosa da controllare: GitHub Actions ragiona in UTC, ovunque tu sia, quindi “0 9 * * *” in un workflow parte alle 9:00 UTC, cioè alle 10:00 o alle 11:00 in Italia a seconda dell'ora legale.

Come faccio un cron che parte l'ultimo giorno del mese?

Con il cron standard a 5 campi non si può in una sola espressione, perché non esiste l'operatore “L” (last), che è un'estensione di Quartz e Spring. La soluzione classica è eseguire il job il 28, 29, 30 e 31 con uno script che controlla `[ "$(date -d tomorrow +%d)" -eq 1 ] && esegui-il-job`. Con Quartz o Spring (`@Scheduled`) puoi scrivere direttamente `0 0 0 L * ?`.

0 */2 * * * è uguale a 0 0,2,4,6,8,10,12,14,16,18,20,22 * * *?

Sì, sono identiche: entrambe partono ogni due ore al minuto 0. `*/2` è la forma breve di “un valore ogni 2 partendo da 0”. Per partire da un'ora dispari (ogni 2 ore a partire dall'1:00) ti serve l'elenco esplicito `0 1,3,5,7,9,11,13,15,17,19,21,23 * * *`, perché */2 parte sempre da 0.

Posso usare i nomi di mesi e giorni invece dei numeri?

In molti scheduler sì: JAN-DEC per i mesi e SUN-SAT per i giorni, senza distinzione tra maiuscole e minuscole, quindi `0 9 * * MON-FRI` equivale a `0 9 * * 1-5`. Questo editor però accetta solo cifre e gli operatori * - / , quindi qui scrivi `0 9 * * 1-5`. La forma numerica è comunque la più sicura tra piattaforme diverse.

L'espressione cron viene inviata da qualche parte?

No. Validazione, descrizione e calcolo delle prossime esecuzioni girano in JavaScript nella scheda del browser. Nella scheda Rete degli strumenti per sviluppatori non parte nessuna richiesta, e non viene salvato niente.

Espressioni cron comuni: esempi pronti

Le pianificazioni che scrivi più spesso, da copiare e incollare. Sono tutte nel formato crontab standard a 5 campi: minuto ora giorno-del-mese mese giorno-della-settimana.

EspressioneQuando parteUso tipico
* * * * *Ogni minutoVerificare che lo scheduler funzioni
*/5 * * * *Ogni 5 minutiPolling frequente, monitoraggio
*/15 * * * *Ogni 15 minutiRiscaldamento della cache, raccolta metriche
0 * * * *Ogni ora allo scoccareRiepiloghi orari, rotazione dei log
30 * * * *Ogni ora alla mezzaSfalsare i job per evitare i picchi all'ora esatta
0 */2 * * *Ogni 2 oreJob batch a media frequenza
0 9 * * *Ogni giorno alle 09:00Report del mattino, email di riepilogo
0 0 * * *Ogni giorno a mezzanotteAggregazioni di fine giornata, rotazione dei log
0 2 * * *Ogni giorno alle 02:00Backup (fascia a basso traffico)
0 9 * * 1-5Alle 9:00 dal lunedì al venerdìNotifiche nei giorni lavorativi, promemoria dello standup
0 9 * * 1Lunedì alle 09:00Report settimanale del lunedì mattina
0 2 * * 0Domenica alle 02:00Backup e pulizie settimanali
0 0 1 * *Il primo del mese alle 00:00Fatturazione e archiviazione mensili
0 0 1 1 *1° gennaio alle 00:00 (ogni anno)Reset annuale, report di fine anno
0 0 1 */3 *Ogni 3 mesi, il giorno 1Job trimestrale
@hourlyAll'inizio di ogni oraScorciatoia per `0 * * * *` (non supportata da tutti gli scheduler)
@dailyOgni giorno a mezzanotteScorciatoia per `0 0 * * *`
@weeklyDomenica alle 00:00Scorciatoia per `0 0 * * 0`
@monthlyIl primo del mese alle 00:00Scorciatoia per `0 0 1 * *`
@yearly1° gennaio alle 00:00Scorciatoia per `0 0 1 1 *`
@rebootAll'avvio dello schedulerUna volta a ogni avvio del demone cron (solo cron Unix)

Il formato standard a 5 campi è definito dal crontab POSIX. Le scorciatoie con la @ (@hourly, @daily e così via) sono un'estensione di Vixie cron supportata dalla maggior parte dei cron Unix e da node-cron, ma NON dai CronJob di Kubernetes, da GitHub Actions, da AWS EventBridge o da Quartz. Questo editor accetta solo la forma a 5 campi, che è anche la più portabile.

Cambia strumento

Cerca e apri qualsiasi strumento