⏱️
← Torna alle guide

Sintassi delle Espressioni Cron: Una Guida Completa con Esempi

· Tag: cron-syntax, crontab-format, cron-fields, cron-expression-guide, linux-automation

Sintassi delle Espressioni Cron

Cron è lo scheduler di job standard sui sistemi Unix-like. Ogni espressione cron definisce una pianificazione in una stringa compatta che specifica quando un comando deve essere eseguito. Comprendere la sintassi è essenziale per automatizzare backup, rotazione dei log e attività di manutenzione.

Il Formato a 5 Campi

Un'espressione cron standard ha cinque campi separati da spazi:

* * * * *
| | | | |
| | | | +----- Day of the Week (0-7, 0 and 7 = Sunday)
| | | +------- Month (1-12)
| | +--------- Day of the Month (1-31)
| +----------- Hour (0-23)
+------------- Minute (0-59)

Dettagli dei Campi

| Campo | Intervallo | Caratteri Speciali | Esempio | |-------|-----------|--------------------|---------| | Minuto | 0-59 | , - * / | 30 = al minuto 30 | | Ora | 0-23 | , - * / | 6 = alle 6 del mattino | | Giorno del Mese | 1-31 | , - * / | 15 = il 15 | | Mese | 1-12 | , - * / | 6 = a giugno | | Giorno della Settimana | 0-7 | , - * / | 0 = di domenica |

Il minuto controlla il minuto esatto di esecuzione: 30 * * * * viene eseguito al minuto 30 di ogni ora. L'ora definisce il momento della giornata: 0 6 * * * viene eseguito alle 6:00 ogni giorno. Il giorno del mese limita a date di calendario specifiche: 0 0 15 * * viene eseguito il 15 di ogni mese a mezzanotte. Il mese limita l'esecuzione a mesi specifici: 0 0 1 6 * viene eseguito il 1 giugno. Il giorno della settimana controlla quali giorni della settimana: 0 8 * * 1-5 viene eseguito alle 8 dal lunedì al venerdì.

Importante: I giorni 29-31 vengono eseguiti solo nei mesi che hanno quelle date. Nei mesi più corti, questi valori vengono saltati silenziosamente.

Caratteri Speciali

| Car | Nome | Scopo | Esempio | |-----|------|-------|---------| | * | Asterisco | Tutti i valori possibili | * nel minuto = ogni minuto | | , | Virgola | Elenca i valori | 1,15,30 = minuti 1, 15, 30 | | - | Trattino | Intervallo | 9-17 = ore dalle 9 alle 17 | | / | Barra | Valori di passo | */5 = ogni 5 minuti |

Valori di Passo con la Barra

La barra esprime "ogni N unità":

# Every 5 minutes
*/5 * * * *

# Every 2 hours
0 */2 * * *

# Every 15 minutes during business hours
*/15 9-17 * * *

Pattern Comuni di Pianificazione Cron

| Pianificazione | Espressione | Descrizione | |----------------|-------------|-------------| | Ogni minuto | * * * * * | Viene eseguito 1.440 volte al giorno | | Ogni 5 minuti | */5 * * * * | Controlli di integrità, monitoraggio | | Ogni ora | 0 * * * * | All'inizio di ogni ora | | Due volte al giorno | 0 6,18 * * * | Alle 6 e alle 18 | | Giornaliero a mezzanotte | 0 0 * * * | Manutenzione classica | | Settimanale di domenica | 0 0 * * 0 | Manutenzione settimanale | | Primo del mese | 0 0 1 * * | Report mensili | | Giorni lavorativi alle 9 | 0 9 * * 1-5 | Inizio dell'orario di lavoro |

Scorciatoie Non Standard

Alcune implementazioni di cron supportano scorciatoie con nome: @yearly (1 gennaio), @monthly (primo del mese), @weekly (domenica), @daily (mezzanotte), @hourly e @reboot (viene eseguito una volta all'avvio del sistema). Supportate da Vixie cron, cronie e dai timer di systemd.

Errori Comuni

  • Impostare sia il giorno del mese sia il giorno della settimana crea una condizione OR — il job viene eseguito quando uno dei due corrisponde, cosa che raramente è l'intenzione.
  • Cron usa il fuso orario di sistema. I job vicini alle transizioni dell'ora legale possono essere eseguiti due volte o per niente.
  • Conta sempre cinque campi. Quattro campi non sono validi; sei campi richiedono la sintassi cron estesa.

Testa le Tue Espressioni Cron

Usa il validatore di espressioni cron per controllare la sintassi, visualizzare in anteprima i prossimi orari di esecuzione e individuare gli errori prima che colpiscano la produzione. Un controllo di validazione di trenta secondi previene errori di pianificazione silenziosi.

Sintassi delle Espressioni Cron: Una Guida Completa con Esempi - CoolTool