Decoder di espressioni cron & prossima esecuzione
Dati di input
| Espressione cron | 0 9 * * 1-5 |
|---|
Decoder di espressioni cron & prossima esecuzione
Analizza un'espressione cron a 5 campi o @abbreviazione: ottieni la descrizione della pianificazione e i prossimi tre orari di esecuzione in UTC.
Dati di input
Espressione cron
Risultati
Inserisci un valore per visualizzare i risultati.
Pianificazione
Prossime 3 esecuzioni (UTC)
Espressioni cron: definizione e struttura
Un'espressione cron è una stringa a cinque campi che pianifica attività ricorrenti sui sistemi Unix. Ogni campo rappresenta un'unità di tempo e lo scheduler avvia il job ogni volta che tutti e cinque i campi corrispondono all'orologio corrente. Il formato è:
| Campo | Posizione | Valori ammessi | Caratteri speciali |
|---|---|---|---|
| Minuto | 1 | 0–59 | * / , - |
| Ora | 2 | 0–23 | * / , - |
| Giorno del mese | 3 | 1–31 | * / , - |
| Mese | 4 | 1–12 | * / , - |
| Giorno della settimana | 5 | 0–7 (0 e 7 = domenica) | * / , - |
Caratteri speciali
*– corrisponde a ogni valore del campo ("ogni ora", "ogni giorno")*/n– passo; corrisponde a ogni n-esimo valore (es.*/15nel campo minuto = ogni 15 minuti)a-b– intervallo; corrisponde a ogni valore compreso tra a e b inclusi (es.1-5nel campo giorno della settimana = da lunedì a venerdì)a,b,c– elenco; corrisponde a ciascun valore elencato (es.1,15nel campo giorno del mese = il 1° e il 15°)a-b/n– intervallo con passo; es.10-50/10corrisponde a 10, 20, 30, 40, 50
Pattern comuni
| Espressione | Significato |
|---|---|
* * * * * | Ogni minuto |
*/15 * * * * | Ogni 15 minuti |
0 * * * * | All'inizio di ogni ora |
0 9 * * 1-5 | Alle 09:00 UTC nei giorni feriali |
30 17 * * 5 | Alle 17:30 UTC ogni venerdì |
0 0 1 * * | A mezzanotte UTC il 1° di ogni mese |
0 0 1 1 * | A mezzanotte UTC il 1° gennaio di ogni anno |
0 0 * * 0 | A mezzanotte UTC ogni domenica |
Abbreviazioni @
La maggior parte delle implementazioni cron accetta alias pratici:
| Abbreviazione | Espressione equivalente |
|---|---|
@yearly / @annually | 0 0 1 1 * |
@monthly | 0 0 1 * * |
@weekly | 0 0 * * 0 |
@daily / @midnight | 0 0 * * * |
@hourly | 0 * * * * |
Interazione tra giorno del mese e giorno della settimana
Quando sia il campo giorno-del-mese sia il campo giorno-della-settimana sono vincolati (nessuno dei due è *), il cron applica la semantica OR: il job parte se almeno una delle condizioni è vera. Ad esempio:
0 0 1 * 1
Questo si attiva a mezzanotte il 1° di ogni mese E ogni lunedì — non solo i lunedì che cadono il 1°. Questo comportamento è definito da POSIX ed è implementato da Vixie cron, la variante più diffusa.
Se solo uno dei due campi è vincolato, l'altro non ha effetto e il job gira semplicemente nei giorni che corrispondono al campo ristretto.
Come funziona lo scheduling cron
Ogni minuto, lo scheduler verifica se il momento corrente soddisfa tutti e cinque i campi. Se sì, il job viene avviato. Poiché la granularità è di un minuto, l'intervallo minimo tra due esecuzioni consecutive è un minuto.
Per impostazione predefinita, lo scheduler non recupera le esecuzioni mancate. Se il server è offline quando un orario pianificato scatta, quell'esecuzione viene saltata. Alcuni scheduler — come i Kubernetes CronJob — offrono il parametro startingDeadlineSeconds per recuperare le esecuzioni perse entro una finestra temporale.
Considerazioni sul fuso orario
La maggior parte delle implementazioni cron interpreta le espressioni nel fuso orario locale del server. I server configurati in UTC eseguiranno il job esattamente negli orari indicati dalle espressioni in UTC. I server in altri fusi orari sposteranno l'orario di esecuzione di conseguenza.
I Kubernetes CronJob e le pianificazioni di GitHub Actions interpretano entrambi le espressioni cron in UTC. Questo calcolatore mostra gli orari di esecuzione futuri in UTC; se il tuo sistema usa un fuso orario diverso, applica lo scarto UTC corrispondente.
Domande frequenti (FAQ)
Cosa significano i cinque campi di un cron?
Un'espressione cron è composta da cinque campi separati da spazi, in questo ordine: minuto (0–59), ora (0–23), giorno del mese (1–31), mese (1–12) e giorno della settimana (0–7, dove 0 e 7 rappresentano entrambi domenica).
Ogni campo accetta un valore specifico, un jolly (), un intervallo (1-5), un passo (/15), un elenco (1,15) o una combinazione come 1-5/2. Le abbreviazioni @yearly, @monthly, @weekly, @daily e @hourly vengono espanse nelle corrispondenti espressioni a cinque campi.
Come interagiscono il giorno del mese e il giorno della settimana?
Quando sia il campo giorno-del-mese sia il campo giorno-della-settimana sono vincolati (nessuno dei due è *), il cron applica la semantica OR: il job viene eseguito se almeno una delle due condizioni è soddisfatta.
Ad esempio, "0 0 1 * 1" si attiva il 1° di ogni mese E ogni lunedì — non solo i lunedì che cadono il 1°. Se solo uno dei due campi è vincolato, l'altro non ha effetto e il job gira semplicemente nei giorni che corrispondono al campo ristretto.
Gli orari delle prossime esecuzioni sono nel mio fuso orario locale?
Questo calcolatore mostra tutti gli orari di esecuzione futuri in UTC. La maggior parte delle implementazioni cron — crontab su Linux, Kubernetes CronJob, pianificazioni di GitHub Actions — interpreta le espressioni nel fuso orario locale del server oppure in UTC. Se il tuo daemon cron gira in UTC, gli orari visualizzati qui corrisponderanno esattamente. Se usa un fuso orario diverso, aggiungi o sottrai lo scarto UTC per convertire.
Da provare dopo
Calcolatore di disponibilità SLA
Converti una percentuale di disponibilità da un contratto di livello di servizio nell'indisponibilità massima consentita per anno, mese, settimana e giorno.
Calcolatore del tempo di trasferimento dati
Stima quanto dura un trasferimento dati reale a partire dalla quantità di dati, dalla velocità del collegamento e dall'overhead del protocollo. Tiene conto della differenza tra la velocità nominale di un collegamento e il suo throughput utilizzabile.