Cron
Analizzatore di espressioni cron
Leggi una pianificazione cron in parole semplici e vedi le prossime esecuzioni.
Cinque campi: minuto, ora, giorno del mese, mese, giorno della settimana. Un sesto campo iniziale viene letto come secondi.
Informazioni sulle espressioni cron
Un'espressione cron è formata da cinque campi che descrivono quando eseguire un'attività: minuto, ora, giorno del mese, mese e giorno della settimana. Ogni campo accetta un numero, un elenco, un intervallo o un passo come */15. Sono compatte ma facili da fraintendere — soprattutto i due campi relativi al giorno, che si combinano in un modo che quasi tutti indovinano male — perciò vedere la pianificazione scritta per esteso e con le date è di solito più rapido che ricavarla a mente.
Oltre ai cinque campi numerici, la maggior parte delle implementazioni di cron — incluso l'analizzatore dietro questo strumento — accetta anche nomi di tre lettere per mesi e giorni della settimana (JAN, MON) al posto dei numeri, e una manciata di scorciatoie come @daily, @hourly e @weekly che si espandono nell'espressione numerica equivalente. Esistono puramente per la leggibilità; @daily e "0 0 * * *" pianificano in modo identico. Non tutte le implementazioni di cron supportano però ogni scorciatoia, quindi controlla la documentazione del tuo specifico scheduler prima di farci affidamento in produzione.
Dove lo incontrerai
- Controllare una riga di crontab prima di portarla su un server
- Leggere una pianificazione in un CronJob di Kubernetes o in una pipeline CI
- Capire perché un'attività notturna è partita a un orario inatteso
- Scrivere da zero una nuova pianificazione di backup o di pulizia
Domande frequenti
Cosa succede se imposto sia il giorno del mese sia il giorno della settimana?
Si combinano con OR, non con AND: l'attività parte non appena uno dei due corrisponde. Quindi "0 0 13 * 5" scatta il 13 di ogni mese e ogni venerdì, non solo di venerdì 13. È di gran lunga l'errore più comune con cron.
In quale fuso orario sono gli orari mostrati?
In UTC. Gli scheduler reali usano il fuso della macchina o della definizione del job, quindi se il server lavora in ora locale gli orari effettivi risulteranno spostati. Controlla la configurazione dello scheduler prima di fidarti dell'ora indicata qui.
Sono supportate sia le espressioni a cinque campi sia quelle a sei?
Sì. Cinque campi corrispondono al cron Unix standard, che parte dai minuti. Un sesto campo iniziale aggiunge i secondi, come si aspettano Quartz, Spring e diverse librerie per i job.
Posso scrivere @daily o MON al posto dei numeri?
Sì. I nomi di tre lettere per mesi e giorni della settimana (JAN, MON e così via) e le scorciatoie come @daily, @hourly e @weekly sono entrambi accettati qui e si espandono nei campi numerici equivalenti — @daily è identico a "0 0 * * *". Sono ampiamente, ma non universalmente, supportati: alcune implementazioni di cron minime o embedded accettano solo la forma numerica a cinque campi, quindi vale la pena controllare la documentazione del tuo scheduler reale prima di fare affidamento su una scorciatoia in produzione.