Spiega un'espressione cron
Leggi una pianificazione crontab in parole semplici ed elenca le prossime volte in cui verrà eseguita, in qualsiasi fuso orario.
Funziona interamente nel tuo browser
- Minuto
- Ora
- Giorno del mese
- Mese
- Giorno della settimana
Prossime esecuzioni
Cron standard a cinque campi (minuto, ora, giorno del mese, mese, giorno della settimana) come usato da Vixie cron, cronie e dalla maggior parte dei sistemi Linux, più le scorciatoie in stile @daily. Quartz e altri formati con il campo dei secondi vengono riconosciuti ma non spiegati.
Come controllare un'espressione cron
- Scrivi o incolla i cinque campi della pianificazione, per esempio
*/15 9-17 * * 1-5, oppure scegli un esempio. Funziona anche una riga crontab completa; il comando dopo il quinto campo viene ignorato. - Leggi il riepilogo in parole semplici e la suddivisione di ogni campo. Un errore viene indicato nel campo in cui si verifica.
- Controlla l'elenco delle prossime esecuzioni. Scegli il fuso orario in cui gira il server e, se vuoi guardare avanti, un orario di partenza diverso.
Leggere una pianificazione cron
Cron controlla la sua tabella una volta al minuto ed esegue ogni job i cui cinque campi corrispondono tutti all'ora attuale, con un'eccezione per i due campi dei giorni descritta sotto. Quindi */15 9-17 * * 1-5 significa: ai minuti 0, 15, 30 e 45, nelle ore da 9 a 17, in qualsiasi giorno del mese, in qualsiasi mese, dal lunedì al venerdì. L'ultima esecuzione della giornata è alle 17:45, perché il campo dell'ora copre tutta l'ora 17.
Il programma analizza ogni campo come fanno Vixie cron e cronie, che sono ciò che la maggior parte delle distribuzioni Linux fornisce. I nomi di mesi e giorni della settimana sono accettati in qualsiasi forma di maiuscole e 7 conta come domenica. Un passo dopo un singolo numero, come 5/10, viene letto come 5-59/10, come lo leggono molte versioni di cron; alcune più vecchie lo rifiutano, quindi lo strumento ti ricorda di scrivere l'intervallo per esteso. Gli intervalli devono andare dal basso verso l'alto: FRI-MON viene segnalato anziché essere avvolto, perché il cron standard non avvolge gli intervalli.
Le prossime esecuzioni si calcolano scorrendo il calendario nel fuso orario che scegli, quindi un'espressione che può corrispondere solo al 29 febbraio trova subito il prossimo anno bisestile, e una che non può mai corrispondere, come 0 0 31 2 *, viene segnalata come mai eseguita.
Suggerimenti
- Trasforma un orario di esecuzione preso da un log in un timestamp Unix, o viceversa, con il Convertitore di timestamp Unix.
- Stai provando il pattern che un job usa per filtrare il suo log? Prova il Tester di regex.
- Controlla come appare una configurazione JSON con pianificazioni usando Formatta e valida JSON.
Domande frequenti
Cosa significano i cinque campi?
In ordine: minuto (0-59), ora (0-23), giorno del mese (1-31), mese (1-12 o JAN-DEC) e giorno della settimana (0-7 o SUN-SAT, dove sia 0 sia 7 sono la domenica). Ogni campo accetta un singolo valore, un elenco come 1,15, un intervallo come 9-17, un passo come */15 o 0-30/10, oppure * per ogni valore.
Perché il mio job viene eseguito in più giorni di quanto mi aspettassi?
Quando sia il campo del giorno del mese sia quello del giorno della settimana sono limitati, cron esegue il job nei giorni che corrispondono a uno dei due, non a entrambi. 0 9 1 * 1 viene eseguito il primo giorno di ogni mese e ogni lunedì. È così che si comportano Vixie cron e cronie. Una stranezza della stessa regola: un campo che inizia con *, come */2, conta come non limitato, quindi in quel caso devono corrispondere entrambi i campi.
Quale fuso orario usa cron?
Il fuso orario della macchina o del container su cui gira, a meno che il crontab imposti CRON_TZ o TZ. Molti server funzionano in UTC, quindi verificalo prima di fidarti degli orari che vedi. Scegli nell'elenco il fuso del server per vedere i suoi orari di esecuzione.
Cosa succede quando le lancette cambiano per l'ora legale?
L'elenco segue l'orologio nel fuso che scegli: un orario saltato quando le lancette vanno avanti viene omesso, e un orario che si verifica due volte quando tornano indietro viene elencato una sola volta. Vixie cron e cronie eseguono un job pianificato in un'ora saltata poco dopo il cambio e non ripetono i job nell'ora ripetuta; altri pianificatori variano. Compare una nota quando un periodo elencato include un cambio.
Supporta i secondi o la sintassi Quartz?
No. Le espressioni con sei o sette campi, o con ?, L, W o #, provengono da Quartz, Spring e pianificatori simili, dove il primo campo è quello dei secondi. Lo strumento lo dice anziché tirare a indovinare, perché leggerle come cron standard darebbe la pianificazione sbagliata.
Cosa significano @daily, @hourly e le altre scorciatoie?
@hourly è 0 * * * *, @daily e @midnight sono 0 0 * * *, @weekly è 0 0 * * 0, @monthly è 0 0 1 * *, e @yearly e @annually sono 0 0 1 1 *. @reboot viene eseguito una volta all'avvio del servizio cron, quindi non ha orari da elencare.