Generatore ed Esplicatore di Espressioni Cron
Costruisci espressioni cron visivamente campo per campo, oppure incollane una esistente per ottenere una spiegazione in italiano e i prossimi cinque orari di esecuzione.
Cos'è un'espressione cron?
Un'espressione cron è una pianificazione a cinque campi usata dagli schedulatori di tipo Unix, dai sistemi CI, dai CronJob di Kubernetes, da AWS EventBridge, GitHub Actions e dalla maggior parte degli esecutori di job moderni. Ogni campo controlla un'unità di tempo — minuto, ora, giorno del mese, mese e giorno della settimana — e supporta quattro abbreviazioni: * (qualsiasi), un elenco separato da virgola (0,15,30,45), un intervallo (1-5) e un passo (*/10). Combinandoli puoi descrivere quasi qualsiasi pianificazione ricorrente senza dover scrivere un calendario a mano.
Come usare questo generatore
Scegli un preset come punto di partenza istantaneo, oppure costruisci l'espressione campo per campo. Ogni campo ha quattro modalità: Ogni emette *; Elenco specifico accetta valori separati da virgola; Intervallo accetta una coppia inizio-fine; Passo accetta un intervallo (*/N) con un offset di partenza opzionale. L'espressione e una descrizione in italiano si aggiornano in tempo reale al variare di qualsiasi cosa. Per fare il percorso inverso, incolla una stringa cron nel riquadro di analisi in basso — lo strumento la decodifica in forma leggibile e ti mostra i prossimi cinque orari di esecuzione nel tuo fuso orario locale.
Riferimento dei campi
Minuto: 0–59. Ora: 0–23. Giorno del mese: 1–31. Mese: 1–12 (gennaio = 1). Giorno della settimana: 0–6 con domenica = 0 nel cron Unix classico — 7 è anch'esso accettato come domenica nella maggior parte dei parser moderni. Quando sia giorno del mese sia giorno della settimana sono impostati su valori diversi da *, il cron classico si attiva quando UNO dei due è soddisfatto (un OR logico), cosa che sorprende molte persone. Scegline uno solo per un comportamento prevedibile.
Domande frequenti
Corrisponde al cron di Quartz / Spring?
0 per ottenere una stringa compatibile con Quartz, ma token speciali come L (last) e W (weekday) sono esclusivi di Quartz e non compariranno qui.Come calcola l'esplicatore le prossime esecuzioni?
E i fusi orari?
crond di Linux usa il fuso del sistema, AWS EventBridge usa UTC come default, GitHub Actions usa UTC, Kubernetes usa il fuso del cluster. Conferma sempre il fuso orario del tuo runner prima di andare in produzione.Come esprimo "l'ultimo giorno del mese"?
59 23 28-31 * *, che si attiva ogni giorno dal 28 in poi alle 23:59. Il job stesso dovrebbe controllare date -d 'tomorrow' +%-d = 1 (o l'equivalente nel tuo linguaggio) e saltare se non è effettivamente fine mese. Quartz cron supporta L a questo scopo — ma le espressioni Quartz non funzionano sul cron Linux semplice.Posso eseguire un job ogni 90 minuti?
*/90 non funziona. La soluzione più vicina sono due espressioni: 0 0,3,6,9,12,15,18,21 * * * e 30 1,4,7,10,13,16,19,22 * * *, che insieme si attivano ogni 90 minuti. Ancora più semplice: pianifica ogni 30 minuti e fai exit 0 dallo script quando non è lo slot giusto.Perché il mio job parte due volte al cambio dell'ora legale?
cron.timezone = 'UTC' oppure imposta TZ=UTC nel crontab) e converti all'ora locale all'interno del job — UTC non ha ora legale.