← 🛠️ Dev Tools
⏰ Dev / Scheduler

Cron Visualizer

Inserisci un'espressione cron e ottieni descrizione human-readable, prossime esecuzioni e timeline grafica. Basta con gli orari incomprensibili.

Minuto
Ora
Giorno mese
Mese
Giorno sett.

Come leggere un'espressione cron

Un'espressione cron standard ha 5 campi separati da spazio: minuto (0–59) · ora (0–23) · giorno del mese (1–31) · mese (1–12) · giorno della settimana (0–7, dove 0 e 7 sono entrambi domenica). Ogni campo può essere un numero, un intervallo (1-5), una lista (1,3,5), un passo (*/15) o * per "qualsiasi valore".

Perché visualizzare le cron expression

Una cron expression come 0 2 * * 1-5 è corretta, ma non dice immediatamente al cervello "ogni giorno lavorativo alle 2:00". La visualizzazione grafica trasforma la stringa in una timeline concreta, mostrando esattamente quando il job scatterà nelle prossime ore e giorni. Elimina ogni ambiguità e rende impossibile deployare un job con la frequenza sbagliata.

Casi d'uso reali

Backup notturni: 0 3 * * * — ogni notte alle 3:00. Visualizzare conferma che il backup non avvenga durante picchi di traffico. Report settimanali: 0 9 * * 1 — ogni lunedì alle 9:00. Pulizia cache: */30 * * * * — ogni 30 minuti. Invio newsletter: 0 10 1 * * — il primo del mese alle 10:00. Healthcheck: */5 * * * * — ogni 5 minuti. La visualizzazione rivela subito se l'intervallo è troppo aggressivo o troppo raro.

Cron standard vs sistemi estesi

Il cron Unix standard ha 5 campi. Molti sistemi moderni aggiungono un sesto campo per i secondi (all'inizio) — usato da Quartz Scheduler (Java), Spring @Scheduled, AWS EventBridge. Alcuni aggiungono anche un settimo campo per l'anno. GitHub Actions e Google Cloud Scheduler usano il formato standard a 5 campi. Verifica sempre la documentazione del sistema che userai.

Caratteri speciali e combinazioni avanzate

* = qualsiasi valore · */n = ogni n unità · n-m = intervallo da n a m · n,m,p = lista di valori specifici · L (in alcuni sistemi) = ultimo giorno del mese · W = giorno lavorativo più vicino · # = n-esimo giorno della settimana nel mese (es. 2#3 = terzo martedì). Le ultime tre sono Quartz-specific e non funzionano sul crontab Linux standard.

FAQ

*/5 e 0-59/5 sono equivalenti?

Sì, entrambi indicano "ogni 5 unità a partire da 0". La notazione */5 è una shorthand per 0-max/5. Nel campo minuti, */5 scatta a 0, 5, 10, 15... 55.

La domenica è 0 o 7?

La maggior parte dei sistemi (Linux crontab incluso) accetta sia 0 che 7 per la domenica. Il lunedì è 1, il sabato è 6. Per massima compatibilità usa 0 per la domenica.

Come eseguire un job l'ultimo giorno del mese?

Il cron standard non supporta nativamente "ultimo giorno del mese" perché i mesi hanno lunghezze diverse. La soluzione comune è usare uno script che verifichi internamente se è l'ultimo giorno: 0 23 28-31 * * test $(date -d tomorrow +\%d) -eq 1 && /path/to/script.sh. Sistemi come Quartz supportano L nel campo giorno del mese.

Cron e fuso orario: il job usa UTC o l'ora locale?

Dipende dalla configurazione del sistema. Il crontab Linux usa la timezone del sistema (verificabile con timedatectl). AWS EventBridge, Google Cloud Scheduler e molti servizi cloud usano UTC di default ma permettono di specificare una timezone. Controlla sempre la documentazione per evitare sorprese con l'ora legale.