Espressione cron

Spiega un cron Linux, Spring o Quartz, oppure costruiscilo dai campi, e elenca le prossime 10 esecuzioni nell’ora locale di questo computer. Costruire un crontab

Costruire un crontab

Campi

Quando scatta questo piano

Scegli Linux Crontab (5 campi), Spring @Scheduled (6 campi, i secondi davanti) o Quartz (6 campi, oppure 7 con l’anno). La pagina spiega ogni campo e elenca le prossime 10 esecuzioni sull’orologio di questo computer. Non installa il lavoro. Per costruirlo da un orario o da @daily, usa il generatore di crontab. I timestamp sono timestamp Unix.

Come si usa

  1. Formato è Linux Crontab (5), Spring @Scheduled (6) o Quartz (6–7). La riga sotto il menu indica l’ordine dei campi e quale numero è la domenica.
  2. Scrivi l’espressione, apri Modello oppure modifica ogni riga sotto Campi. Modello ha Ogni minuto, Ogni ora, Ogni giorno a mezzanotte, Ogni domenica a mezzanotte, Nei giorni feriali, 9–17, ogni 15 minuti e Primo giorno del mese a mezzanotte. I pulsanti sotto il campo caricano quell’elenco per il formato attuale, e anche Ogni giorno alle 02:00, Fine settimana alle 09:00, Minuti 5/15, Ogni 2 ore al minuto 30 e il 1 gennaio. Spring e Quartz aggiungono Ultimo giorno del mese alle 23:00, il giorno feriale più vicino al 15, il primo lunedì alle 10:15 e l’ultimo venerdì alle 10:15. Quartz aggiunge anche il 1 gennaio 2030. Il link accanto ai pulsanti apre il generatore di crontab. Ogni riga ha Ogni, Intervallo, Passo e Valori. Valori mostra i numeri: secondi e minuti 0–59, ore 0–23, giorni 1–31, mesi 1–12, giorni SUN–SAT. Spring e Quartz hanno anche Non impostato (?), Ultimo giorno (L), Ultimo giorno feriale (LW), Giorno feriale più vicino (W), N-esimo giorno (#) e Ultimo giorno della settimana (nL). Una modifica sotto Campi riscrive l’espressione. Un campo che le righe non sanno mostrare resta su Personalizzato e tiene il testo.
  3. Aggiorna mentre scrivi è attivo. Spiega parte una volta. Mostra esempio carica l’esempio dei feriali del formato attuale: Linux */15 9-17 * * 1-5, Spring 0 */15 9-17 * * MON-FRI, Quartz 0 */15 9-17 ? * MON-FRI.
  4. Il risultato nomina ogni campo, poi Prossime 10 esecuzioni. Cancella tutto svuota espressione e risultato e riporta ogni campo su Ogni. Copia risultato copia quel testo. Cambiare formato aggiunge o toglie i secondi, trasforma ? in * su Linux e riscrive i numeri della settimana come SUN–SAT così restano gli stessi giorni.

Quali date coincidono

Linux è minuto, ora, giorno del mese, mese, giorno della settimana. Domenica è 0, 7 o SUN. Lunedì è 1. Non ci sono ?, L, W né #. Se giorno del mese e giorno della settimana sono entrambi limitati, ne basta uno, e il risultato lo dice.

Spring mette i secondi davanti. La domenica usa gli stessi numeri di Linux. ? ignora quel campo. L è l’ultimo giorno del mese. 15W è il feriale più vicino al 15 e resta nel mese. LW è l’ultimo feriale. MON#1 è il primo lunedì. 6L è l’ultimo sabato, perché qui 6 è sabato.

Quartz usa gli stessi sei campi e un anno facoltativo come 2024-2030. Domenica è 1 o SUN. Lunedì è 2. Sabato è 7. 6L è l’ultimo venerdì. Il giorno o il giorno della settimana deve essere ?, come in 0 0 2 * * ? per le 02:00 ogni giorno. Se entrambi sono specifici, il risultato elenca comunque un’esecuzione quando uno dei due coincide e avvisa. SUN–SAT e JAN–DEC valgono in qualsiasi maiuscolo e indicano lo stesso giorno o mese nei tre formati.

Un trattino è un intervallo, una virgola un elenco, una barra un passo. */15 parte dall’inizio del campo ogni 15. 5/15 parte da 5 fino alla fine, quindi i minuti sono 5, 20, 35 e 50. Gli orari sono locali, non UTC. Con il campo dei secondi l’elenco avanza di un secondo; altrimenti di un minuto.

Dove si usa

  • Controllare una riga di crontab come 0 2 * * * prima di installarla.
  • Scrivere lo Spring 0 0 2 * * * per le 02:00 ogni giorno.
  • Controllare il Quartz 0 15 10 ? * 6L (ultimo venerdì alle 10:15) o 0 0 23 L * ? (23:00 l’ultimo giorno del mese).

Domande

Perché le 02:00 sono cinque campi su Linux e sei su Spring?

Linux non ha i secondi, quindi le 02:00 sono 0 2 * * *. Spring e Quartz mettono i secondi davanti: la stessa ora è 0 0 2 * * * oppure, su Quartz, 0 0 2 * * ?.

Che cosa significa il punto interrogativo?

Quel campo non è impostato. Quartz lo vuole sul giorno del mese o sul giorno della settimana. 0 0 2 * * ? sono le 02:00 ogni giorno.

1 è domenica?

Su Linux e Spring, 1 è lunedì e la domenica è 0 o 7. Su Quartz, 1 è domenica e 2 è lunedì. SUN è domenica in tutti e tre.

L’orologio non coincide con UTC.

Prossime 10 esecuzioni usa il fuso locale di questo computer.