Generatore di espressioni cron: crea, spiega, prossime esecuzioni | We.Inc
Crea una pianificazione cron con i menu a tendina o incollane una per leggerla in italiano semplice. Vedi le prossime 10 esecuzioni nel tuo fuso orario e copiala per crontab, GitHub Actions, Vercel o Kubernetes.
Generatore di espressioni cron
Un'espressione cron è composta da cinque campi separati da spazi: minuto, ora, giorno del mese, mese e giorno della settimana. */5 * * * * viene eseguita ogni cinque minuti; 0 9 * * 1-5 viene eseguita alle 9:00 nei giorni feriali. Creane una con i menu a tendina o incolla la tua per vederla spiegata insieme ai prossimi dieci orari di esecuzione.
I cinque campi, in ordine
Campo
Valori ammessi
Minuto
Ora
Giorno del mese
Mese
1-12 o JAN-DEC
Giorno della settimana
0-7 o SUN-SAT (0 e 7 sono domenica)
Scegli i valori campo per campo o incolla un'espressione. Lo strumento la spiega in italiano semplice, segnala gli errori, elenca le prossime dieci esecuzioni in qualsiasi fuso orario e ti dà la stessa pianificazione pronta per crontab, GitHub Actions, Vercel e Kubernetes.
Scrivi o incolla un'espressione nella casella, oppure clicca uno dei preset. Funzionano anche scorciatoie come @daily e @weekly.
Oppure usa il generatore: ognuno dei cinque campi offre la scelta tra ogni valore, ogni N, valori specifici o un intervallo. L'espressione si aggiorna mentre scegli.
Leggi la riga in italiano semplice per verificare che la pianificazione dica ciò che intendevi. Gli errori, come un minuto 61 o un campo mancante, vengono indicati per nome.
Scegli un fuso orario per vedere le prossime dieci esecuzioni come avverrebbero lì, compresi i cambi dell'ora legale.
Copia la pianificazione nel formato che si aspetta la tua piattaforma. Tutto gira nel tuo browser.
La maggior parte degli scheduler in hosting, compresi GitHub Actions e i cron job di Vercel, legge la pianificazione in UTC. Converti la tua ora locale prima di salvarla, altrimenti il job partirà ore prima o dopo.
Se compili sia il campo del giorno del mese sia quello del giorno della settimana, cron esegue il job quando corrisponde uno dei due, non quando corrispondono entrambi. 0 0 13 * 5 viene eseguito ogni 13 del mese e ogni venerdì, non solo venerdì 13.
Scegli un minuto insolito come 17 3 * * * invece di 0 0 * * *. Moltissimi job sono impostati allo scoccare dell'ora, quindi i servizi condivisi e i runner in hosting sono più carichi in quel momento.
I job pianificati tra le 01:00 e le 03:00 ora locale possono essere saltati o eseguiti due volte quando cambia l'ora. Pianifica i job critici in UTC o fuori da quella fascia.
GitHub Actions non esegue pianificazioni più frequenti di ogni 5 minuti e può avviarle in ritardo quando i suoi runner sono occupati, quindi lì non contare su tempi esatti.
Domande frequenti
Come scrivo un cron job che viene eseguito ogni 5 minuti?
Usa */5 * * * *. */5 nel campo dei minuti significa ogni quinto minuto a partire da 0, quindi viene eseguito a :00, :05, :10 e così via. Per ogni 10 o 15 minuti, cambia il numero in 10 o 15.
Cosa significa */ in cron?
La barra imposta un passo. */15 nel campo dei minuti significa ogni 15 minuti dell'ora: 0, 15, 30 e 45. Puoi anche procedere a passi in un intervallo: 9-17/2 nel campo delle ore significa 9, 11, 13, 15 e 17.
In cron la domenica è 0 o 7?
Entrambi. Il cron standard accetta 0 e 7 per la domenica, poi da 1 per il lunedì fino a 6 per il sabato. I nomi dei giorni come SUN e MON evitano del tutto il problema.
Perché la mia espressione ha sei o sette campi?
Quartz, Spring e alcuni scheduler cloud aggiungono un campo dei secondi all'inizio e a volte un anno alla fine. Il crontab standard, GitHub Actions, Vercel e Kubernetes usano cinque campi. Questo strumento legge la forma a cinque campi; togli il campo dei secondi per verificare il resto.
Quale fuso orario usa cron?
Un crontab usa il fuso orario del server su cui gira, a meno che il sistema non supporti un'impostazione CRON_TZ o TZ. GitHub Actions e Vercel usano UTC. I CronJob di Kubernetes usano il fuso orario del controller, a meno che tu non imposti il campo timeZone nello spec.
Come leggere un'espressione cron
Leggi i campi da sinistra a destra: a questo minuto, di questa ora, in questo giorno del mese, in questo mese, in questo giorno della settimana. Un asterisco significa qualsiasi valore. Quindi 30 6 * * 1 si legge: al minuto 30 dell'ora 6, in qualsiasi giorno del mese, in qualsiasi mese, di lunedì. Cioè le 06:30 di ogni lunedì.
Ogni campo può contenere un singolo valore, un elenco (1,15), un intervallo (1-5), un passo (*/10) o una combinazione (0-30/10,45). Il generatore in questa pagina li scrive per te, e la riga di descrizione rilegge il risultato così puoi verificarlo.
La trappola del giorno del mese e del giorno della settimana
Quando entrambi i campi dei giorni hanno un valore diverso dall'asterisco, cron li tratta come alternative. Un job impostato su 0 0 1 * 1 viene eseguito il primo del mese e ogni lunedì. Questo sorprende molte persone che si aspettavano il primo lunedì del mese.
Cron non può esprimere direttamente il primo lunedì. La soluzione abituale è pianificare 0 0 1-7 * * e far terminare lo script se il giorno non è un lunedì, oppure usare uno scheduler con una sintassi propria per questo caso.
Dove verrà eseguita la tua pianificazione
Ogni piattaforma qui sotto usa gli stessi cinque campi, ma li incapsula in modo diverso e alcune aggiungono regole proprie. Copia dallo strumento lo snippet per la tua, poi controlla la sua documentazione per i limiti sulla frequenza dei job nel tuo piano.
Ogni 5 minuti
Ogni 15 minuti
Ogni ora, allo scoccare dell'ora
Ogni 6 ore
Ogni giorno a mezzanotte
Giorni feriali alle 9:00
Venerdì alle 17:30
Domenica alle 3:00
Primo giorno di ogni mese
Primo giorno di ogni trimestre alle 8:00
Ogni 10 minuti in orario d'ufficio
Una volta all'anno, 1 gennaio
Cosa significa ogni carattere in un campo cron
Simbolo
Significato
Esempio
Si legge
Ogni valore
* nel campo delle ore
Ogni ora
Un elenco di valori
1,15 nel campo del giorno
Il giorno 1 e il 15
Un intervallo
1-5 nel campo del giorno della settimana
Da lunedì a venerdì
Un passo in un intervallo
*/10 nel campo dei minuti
Minuti 0, 10, 20, 30, 40, 50
JAN-DEC
Nomi dei mesi (maiuscole o minuscole)
Da giugno ad agosto
SUN-SAT
Nomi dei giorni; 0 e 7 sono entrambi domenica
sat,sun
Fine settimana
@daily
Scorciatoia per 0 0 * * *
@hourly, @weekly, @monthly, @yearly
Uguale alla forma a cinque campi
Minuto
Ora
Giorno del mese
Mese
Giorno della settimana
Gen
Mar
Apr
Mag
Giu
Lug
Ago
Set
Ott
Nov
Dom
Lun
Mar
Mer
Gio
Ven
Sab
Modalità {field}
Ogni
Ogni N
Specifico
Intervallo
Passo {field}
Valori {field}, separati da virgola
{field} da
{field} a
La tua pianificazione
Espressione cron
Copia espressione
Creala campo per campo
Modificare un qualsiasi campo qui sotto sostituisce l'espressione qui sopra.
Prossime 10 esecuzioni
Fuso orario
Caricamento del tuo orologio…
Nessuna esecuzione nei prossimi cinque anni. Controlla i campi del giorno e del mese, per esempio 31 in un mese che ha 30 giorni.
Correggi l'espressione per vedere gli orari di esecuzione.
Esecuzioni a meno di 5 minuti di distanza. GitHub Actions non pianifica con questa frequenza.
Copia per la tua piattaforma
Copia snippet
Aggiungi la riga con crontab -e. Viene eseguita nel fuso orario del server; sostituisci il comando con il tuo.
Va in un file di workflow sotto .github/workflows. GitHub legge la pianificazione in UTC.
Vercel legge la pianificazione in UTC e chiama il percorso che indichi con una richiesta GET.
Il campo timeZone imposta in quale fuso viene letta la pianificazione. Sostituisci immagine e comando con il tuo job.