Vai al contenuto

Generatore di espressioni cron:
quando scatterà?

Scegli una frequenza e un orario. Il builder scrive l'espressione a cinque campi, la rilegge in italiano semplice ed elenca le prossime dieci date in cui scatterà — così controlli la pianificazione prima che arrivi in un crontab, non dopo l'esecuzione delle 03:30.

Sintassi cron

Leggere 30 3 * * 1-5

Ogni espressione cron risponde alle stesse cinque domande, da sinistra a destra — qui applicate a una pianificazione reale.

30 minuto 0 – 59 mezz'ora esatta
3 ora 0 – 23 le 3 del mattino, ora del server
* giorno del mese 1 – 31 qualsiasi data
* mese 1 – 12 qualsiasi mese
1-5 giorno della settimana 0 – 7 · 0 e 7 = Dom lunedì – venerdì

Letta come frase: dal lunedì al venerdì, alle 03:30. 30 3 * * 1-5

Dall'italiano al crontab

Vedi la pianificazione prima che la esegua cron

La maggior parte delle espressioni cron viene testata per la prima volta dall'esecuzione delle 03:30 in produzione. Questo generatore sposta quel test nel tuo browser:

  • Domande strutturate, non supposizioni. Frequenza, giorno, orario — ogni ambiguità della versione in italiano diventa un controllo esplicito.
  • Le prossime dieci esecuzioni, calcolate. Un parser reale scorre il calendario così puoi leggere la pianificazione come date, non come sintassi.
  • Output POSIX portabile. Cinque campi, solo numeri — funziona su qualsiasi crontab, da Alpine ad AIX. I simboli esotici restano segnalati, non generati.

Un'espressione cron, campo per campo

*/15 9-17 * * 1-5
*/15minuto — ogni 15: :00, :15, :30, :454× / ora
9-17ora — un intervallo: dalle 09:00 alle 17:459 ore
*giorno del mese — non ristrettoqualsiasi
*mese — non ristrettoqualsiasi
1-5giorno della settimana — dal lunedì al venerdìgiorni feriali
La frase completa: ogni 15 minuti, 09:00–17:45, lun–ven. Vuoi la direzione opposta per un'espressione che non hai scritto tu? È il nostro traduttore di espressioni cron.
Simboli cron

Cosa significano *, */5 e @daily

Cinque funzionano in qualsiasi crontab. Il sesto è esclusivo di Quartz e non si installa.

*

Corrisponde a tutto — il valore predefinito, e il più «rumoroso». Nel campo minuto significa sessanta esecuzioni all'ora, ed è lì che nasce il ticket «perché è partito 60 volte».

→ se intendi una volta sola, scrivi un numero
*/5

Uno step — ogni 5° valore. Gli step non si propagano tra i campi: */90 nel campo minuto diventa silenziosamente «a :00» — una cadenza di 90 minuti richiede due righe.

→ gli step vivono dentro un solo campo
1-5

Un intervallo — lun–ven nel campo giorno della settimana, 9–17 nel campo ora. Si combina con una lista: 1-5,0 significa giorni feriali più domenica.

→ intervalli e liste si combinano liberamente
0,30

Una lista — valori esatti, separati da virgola. Il modo portabile per dire «due volte all'ora» oppure «gennaio, aprile, luglio, ottobre».

→ elenca esattamente i valori che vuoi
@daily

Alias — @hourly @daily @weekly @reboot. Comodi dove sono supportati, ma @reboot scatta quando parte il demone cron, il che non coincide sempre con un riavvio del sistema.

→ cinque campi numerici funzionano in ogni cron
MON#1

Non è cron. # L W ? appartengono a Quartz — Jenkins, Spring, alcuni tool CI. Incollali in un crontab e la riga non si installa.

→ il crontab è solo POSIX a 5 campi
Ricette pronte da copiare

Pianificazioni cron già pronte

Sono tutte POSIX valide. Per i casi meno comuni, come «ogni 2 marzo alle 17:30», guarda la nostra libreria di esempi cron.

Ogni minuto* * * * *
Ogni 5 minuti*/5 * * * *
Ogni ora, in punto0 * * * *
Ogni 2 ore0 */2 * * *
Ogni notte alle 03:3030 3 * * *
Giorni feriali alle 09:000 9 * * 1-5
Domeniche alle 02:000 2 * * 0
1° del mese, alle 06:000 6 1 * *
Trimestrale (1° gen · apr · lug · ott)0 6 1 1,4,7,10 *
Domande frequenti

Domande frequenti sulle espressioni cron

Trasforma una pianificazione che puoi descrivere a parole, come «ogni giorno feriale alle nove», nell'espressione a cinque campi che cron legge: 0 9 * * 1-5. Questo strumento va oltre: rilegge l'espressione in italiano e calcola le sue prossime dieci esecuzioni, così puoi controllare la pianificazione come date. Segnala anche le due trappole classiche: la regola OR dei campi giorno e l'errore dell'asterisco al posto dello zero.

Da sinistra a destra: minuto (0–59), ora (0–23), giorno del mese (1–31), mese (1–12), giorno della settimana (0–7, dove sia 0 che 7 indicano domenica). Ogni campo accetta un numero, una lista (0,30), un intervallo (1-5), uno step (*/15), oppure * per «qualsiasi». Alcuni scheduler aggiungono un sesto campo per i secondi (Quartz, Spring) — un crontab non lo accetta.

Non in una riga sola — gli step non riportano il resto tra un campo e l'altro, quindi */90 nel campo minuto significa solo «a :00». La soluzione sono due righe di crontab che si alternano: 0 0-21/3 * * * (00:00, 03:00, 06:00…) più 30 1-22/3 * * * (01:30, 04:30, 07:30…) — insieme, ogni 90 minuti. Lo stesso trucco copre qualsiasi cadenza che non divide 60.

Perché il campo minuto era *. * 3 * * * significa «ogni minuto in cui l'ora è 3» — dalle 03:00 alle 03:59, sessanta esecuzioni. Quello che intendevi era 0 3 * * *. È l'errore cron per eccellenza, ed è il motivo per cui questo strumento scrive sempre un minuto esplicito, a meno che tu non scelga letteralmente «ogni minuto».

Cron scatta quando corrisponde uno qualsiasi dei due — unione, non intersezione. È scritto nello standard POSIX, e trae in inganno molte persone. Prendi 0 9 1-7 * 1, un tentativo naturale di dire «il primo lunedì del mese». Scatta nei giorni 1–7 e ogni lunedì: 10 o 11 mattine al mese invece di una. La vista trappola di questa pagina calcola entrambe le letture affiancate e mostra la soluzione portabile.

L'ora locale del server — cron non ha un campo per il fuso orario. Se il server gira in UTC (come la maggior parte delle immagini cloud), le 09:00 nel crontab sono le 09:00 UTC. Alcuni cron (cronie su RHEL/Fedora, FreeBSD) rispettano una riga CRON_TZ=; il classico vixie-cron di Debian no. E attenzione al cambio dell'ora se il server usa un fuso locale: nelle notti del cambio le 02:30 possono capitare due volte — o mai. Pianificare fuori dalla fascia 01:00–03:00, oppure tenere i server su UTC, evita del tutto il problema.

Cron registra di aver avviato il job; niente di integrato ti dice se è andato a buon fine. Tre livelli: reindirizza l'output verso un log (>> /var/log/job.log 2>&1), imposta MAILTO= su un indirizzo che qualcuno legge, poi aggiungi un controllo indipendente sul risultato. Il terzo livello funziona ovunque l'output sia visibile dall'esterno: una pagina rigenerata, un certificato rinnovato, una sitemap. La vista sugli errori silenziosi di questa pagina illustra l'intera modalità di guasto.

Gli strumenti gratuiti sono solo l'inizio.
Uptimia si prende cura dei tuoi siti.

Uptime, SSL, scadenza dominio, velocità delle pagine, transazioni — monitorati da 171+ punti in tutto il mondo. Gratis per 30 giorni.

30 giorni gratis senza carta di credito cancellabile in qualsiasi momento piano gratuito dopo la prova
Oltre 100.000 siti monitorati · Conforme al GDPR