Come Validare le Espressioni Cron: Una Guida Passo-Passo
Come Validare le Espressioni Cron
Le espressioni cron sono compatte ma facili da sbagliare. Una barra fuori posto o un valore fuori intervallo può far eseguire un job nell'orario sbagliato — o non eseguirlo affatto. Validare le espressioni prima del deploy fa risparmiare ore di debugging quando un'attività critica fallisce silenziosamente.
Errori di Sintassi Comuni
Valori Fuori Intervallo
Ogni campo accetta un intervallo specifico. I valori al di fuori di questo intervallo non sono validi.
# Invalid: minute 60 is out of range (0-59)
60 * * * *
# Invalid: hour 24 is out of range (0-23)
0 24 * * *
Campi Mancanti
Un'espressione cron richiede esattamente cinque campi. Quattro campi non sono validi, sei campi richiedono la sintassi estesa.
# Invalid: only 4 fields (missing day of week)
0 0 * *
# Invalid: 6-field syntax without proper daemon support
0 0 * * * * /command.sh
Conta sempre: minuto, ora, giorno del mese, mese, giorno della settimana.
Valori di Passo Errati
# Invalid: cannot step by 0
*/0 * * * *
# Invalid: step exceeds field maximum
*/61 * * * *
I valori di passo devono iniziare da 1 e non superare il massimo del campo.
Come Validare un'Espressione Cron
Passo 1: Suddividi in Campi
Dividi in base agli spazi e verifica che ci siano esattamente cinque campi:
Expression: 30 6 * * 1-5
Fields: minute=30, hour=6, day=*, month=*, weekday=1-5
Passo 2: Valida Ogni Campo
| Campo | Intervallo Consentito | Accetta Caratteri Speciali |
|-------|-----------------------|----------------------------|
| Minuto | 0-59 | * , - / |
| Ora | 0-23 | * , - / |
| Giorno del Mese | 1-31 | * , - / |
| Mese | 1-12 | * , - / |
| Giorno della Settimana | 0-7 | * , - / |
Passo 3: Controlla i Conflitti
Alcune espressioni sono sintatticamente valide ma logicamente sorprendenti:
# Runs on the 15th OR every Sunday — an OR condition
0 0 15 * 0
Il giorno del mese e il giorno della settimana insieme creano una condizione OR nel cron standard. Il job viene eseguito quando uno dei due corrisponde.
Passo 4: Anteprima dei Prossimi Orari
Genera gli orari di esecuzione per verificare visivamente la tua pianificazione:
Expression: 0 2 * * 1
Next 5 executions:
1. 2026-07-27 02:00:00 (Monday)
2. 2026-08-03 02:00:00 (Monday)
3. 2026-08-10 02:00:00 (Monday)
Se l'anteprima non corrisponde alla tua intenzione, correggi l'espressione prima della produzione.
Debug dei Job che Non Vengono Eseguiti
Un'espressione valida che non viene eseguita di solito è un problema di sistema:
- Permessi — lo script deve avere il permesso di esecuzione (
chmod +x). - Percorso — cron usa un PATH minimale. Usa sempre percorsi assoluti:
/usr/local/bin/mybackup.shnonmybackup.sh. - Ambiente — cron non carica i profili della shell. Esporta le variabili all'interno della crontab o dello script stesso.
- Log — reindirizza l'output per confermare l'esecuzione:
0 6 * * * /path/to/script.sh >> /var/log/cron.log 2>&1
Uso dello Strumento Validatore
Il validatore di espressioni cron fornisce tre funzioni:
- Validazione della sintassi — feedback immediato sui valori e sulla formattazione dei campi.
- Anteprima della pianificazione — visualizza i prossimi orari di esecuzione a partire dalla data corrente.
- Calendario visivo — le esecuzioni pianificate rappresentate su un calendario mensile.
Nessuna espressione cron dovrebbe essere distribuita senza visualizzare in anteprima i prossimi orari di esecuzione. Un controllo di trenta secondi previene errori di pianificazione silenziosi.