Informatica
Espressioni cron spiegate
Incolla la riga di crontab, senza il comando: ottieni la descrizione in parole, la tabella dei valori di minuti, ore, giorni, mesi e giorni della settimana e le prossime date in cui il job partirà.
Come si legge una riga di crontab
Un'espressione cron ha cinque campi: minuto (0-59), ora (0-23), giorno del mese (1-31), mese (1-12) e giorno della settimana (0-7, dove 0 e 7 sono domenica). L'asterisco vuol dire «qualsiasi», la virgola separa più valori, il trattino indica un intervallo e la barra un passo: */15 nei minuti significa 0, 15, 30 e 45.
Così 0 9 * * 1-5 lancia il job alle 9:00 dal lunedì al venerdì, 30 2 1 * * alle 2:30 del primo giorno di ogni mese, */10 * * * * ogni dieci minuti. Le macro sono abbreviazioni: @daily equivale a 0 0 * * *, @hourly a 0 * * * *, @weekly a 0 0 * * 0.
C'è un'eccezione che sorprende molti: se sia il giorno del mese sia il giorno della settimana sono diversi da *, cron esegue il job quando è vero uno dei due. 0 12 1 * 1 non vuol dire «il primo del mese se è lunedì», ma «ogni primo del mese e ogni lunedì».
Errori frequenti
- Scrivere * * * * * pensando a «una volta al giorno»: significa ogni minuto.
- Dimenticare che cron usa il fuso orario del server, non quello di chi guarda: le prossime esecuzioni qui sono nel fuso del tuo browser.
- Aspettarsi un job il 31 di ogni mese: nei mesi di 30 giorni e a febbraio semplicemente non parte.
Domande frequenti
Cron supporta i secondi?
Il cron classico no: la risoluzione minima è il minuto. Alcuni sistemi, come Quartz o Spring, aggiungono un sesto campo per i secondi, ma la sintassi è diversa.
Che cosa succede con l'ora legale?
Nella notte in cui l'orologio va avanti, un job alle 2:30 può essere saltato; quando torna indietro può partire due volte. Per questo i job importanti si pianificano fuori dalla fascia 2-3 o in UTC.
Posso usare i nomi dei giorni e dei mesi?
Sì: MON-FRI per i giorni e JAN-DEC per i mesi, in inglese e senza distinzione fra maiuscole e minuscole.
Come funziona questo calcolo
Ogni campo viene espanso nell'insieme dei valori ammessi: * è l'intero intervallo, a-b un intervallo, x/n i valori da x in poi a passi di n, e le liste separate da virgole si uniscono. Nel giorno della settimana 7 diventa 0 (domenica). Un giorno è valido se il mese è ammesso e, quando entrambi i campi dei giorni sono ristretti, se lo è il giorno del mese oppure quello della settimana. Le prossime esecuzioni si cercano giorno per giorno, fino a otto anni avanti, nel fuso orario del browser.
Calcoli collegati
Formattatore e validatore JSON
Formatta, minifica e valida JSON: indentazione, chiavi ordinate e posizione esatta degli errori.
Tester di espressioni regolari
Prova una regex sul testo: corrispondenze evidenziate, gruppi di cattura e sostituzione, in JavaScript.
Convertitore timestamp Unix
Da timestamp Unix a data e ora, e ritorno: secondi, millisecondi, UTC e ora locale.