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.
Leggere 30 3 * * 1-5
Ogni espressione cron risponde alle stesse cinque domande, da sinistra a destra — qui applicate a una pianificazione reale.
Letta come frase: dal lunedì al venerdì, alle 03:30. 30 3 * * 1-5
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-5Cosa 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».
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.
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.
Una lista — valori esatti, separati da virgola. Il modo portabile per dire «due volte all'ora» oppure «gennaio, aprile, luglio, ottobre».
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.
Non è cron. # L W ? appartengono a Quartz — Jenkins, Spring, alcuni tool CI. Incollali in un crontab e la riga non si installa.
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.
Trappole cron comuni
Entrambe calcolate in tempo reale, nel tuo browser — senza andata e ritorno al server.
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.
Continua a esplorare
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.