MiServe DevTools

I tuoi adesivi

Fissa qui gli strumenti. Restano salvati in questo browser.

Spiegazione di espressioni cron

Leggi un'espressione cron campo per campo e in una sola frase chiara, e guarda quando verrà eseguita la prossima volta.

In parole semplici

Il significato di ogni campo dell'espressione
CampoValoreSignificatoValori ammessi
Minuto 0–59
Ora 0–23
Giorno del mese 1–31
Mese 1–12, JAN–DEC
Giorno della settimana 0–7, SUN–SAT

Prossime esecuzioni

EsecuzioneTra quanto

Funziona nel tuo browser. Nulla di ciò che incolli viene caricato.

Informazioni su questo strumento

I cinque campi

Un'espressione cron è formata da cinque campi separati da spazi: minuto (0–59), ora (0–23), giorno del mese (1–31), mese (1–12) e giorno della settimana (0–7, dove sia 0 sia 7 indicano la domenica). Cron controlla l'orologio una volta al minuto ed esegue il job quando minuto, ora, mese e giorno corrispondono tutti. I due campi del giorno decidono insieme se il giorno corrisponde, secondo la regola descritta più sotto.

In ogni campo * corrisponde a qualsiasi valore, un elenco come 1,15 corrisponde a ciascun valore che contiene, un intervallo come 1-5 corrisponde a tutto ciò che va dal primo valore all'ultimo, e un passo come */15 o 8-18/2 prende un valore ogni N dell'intervallo. Mesi e giorni della settimana si possono scrivere con i nomi inglesi di tre lettere, da JAN a DEC e da SUN a SAT.

Le macro sono abbreviazioni: @hourly equivale a 0 * * * *, @daily e @midnight a 0 0 * * *, @weekly a 0 0 * * 0, @monthly a 0 0 1 * *, e @yearly e @annually a 0 0 1 1 *.

Quando sono impostati entrambi i campi del giorno

Giorno del mese e giorno della settimana non si restringono a vicenda. Quando sono entrambi limitati, il job viene eseguito nei giorni che corrispondono ad almeno uno dei due. 0 0 13 * 5 viene quindi eseguito a mezzanotte il 13 di ogni mese e anche ogni venerdì, non solo il venerdì 13.

Vixie cron e cronie stabiliscono se un campo del giorno è limitato guardando il suo primo carattere. Un campo che inizia con *, compreso un passo come */2, conta come non limitato, e allora devono corrispondere entrambi i campi. 0 0 */2 * 1 viene eseguito di lunedì quando il lunedì cade in un giorno dispari del mese. Questo strumento segue la stessa regola e ti dice quale dei due casi si applica.

Passi, fusi orari e ciò che non viene letto

Un passo conta a partire dall'inizio dell'intervallo e ricomincia quando l'intervallo finisce. */15 nel campo dei minuti dà 0, 15, 30 e 45, cioè davvero ogni 15 minuti. */7 dà 0, 7, 14 e così via fino a 56, e poi di nuovo 0 quattro minuti dopo. La tabella elenca i valori in cui si espande un passo, così puoi vederlo.

Cron confronta l'espressione con l'orologio della macchina su cui gira, e molti server tengono quell'orologio in UTC. Scegli Ora locale o UTC sopra l'elenco delle prossime esecuzioni in base alla macchina, e leggi l'altra colonna per vedere gli stessi istanti nell'altro fuso. Quando l'orologio locale cambia per l'ora legale, le implementazioni di cron si comportano in modo diverso con i job impostati nell'ora saltata o ripetuta. Questo strumento non elenca un'esecuzione in un orario saltato, ed elenca due volte un orario ripetuto solo quando il campo dei minuti o quello delle ore inizia con *.

Viene letta solo la sintassi standard a cinque campi. Un campo dei secondi, un campo dell'anno e i caratteri ?, L, W e # appartengono ad altri scheduler, come Quartz, e vengono segnalati come errori. Lo stesso vale per un passo dopo un singolo valore, come 5/15: il manuale di crontab definisce un passo solo dopo * o dopo un intervallo, quindi scrivi 5-59/15.

Domande

Che cosa significa */5 in un'espressione cron?

Significa un valore ogni cinque, contando dal valore più basso ammesso dal campo. Nel campo dei minuti sono i minuti 0, 5, 10 e così via fino a 55, quindi il job viene eseguito ogni cinque minuti. Nel campo delle ore sono le ore 0, 5, 10, 15 e 20.

0 0 13 * 5 viene eseguito solo venerdì 13?

No. Quando giorno del mese e giorno della settimana sono entrambi limitati, cron esegue il job quando corrisponde almeno uno dei due. Quell'espressione viene eseguita il 13 di ogni mese e ogni venerdì.

La domenica è 0 o 7?

Entrambi. Il campo del giorno della settimana accetta valori da 0 a 7, e sia 0 sia 7 indicano la domenica. Il lunedì è 1 e il sabato è 6. Puoi anche scrivere SUN, MON e così via.

Quale fuso orario usa cron?

Cron usa l'orologio e il fuso orario del sistema su cui gira, a meno che lo scheduler non ti permetta di impostare un fuso per il job. Molti server e scheduler in hosting girano in UTC, quindi verifica prima di dare per scontata l'ora locale.

Altri strumenti in Tempo