In questo articolo
Cos'e Crontab?
Crontab (tabella cron) e un pianificatore di attivita basato sul tempo nei sistemi operativi Unix-like. Permette di pianificare comandi o script da eseguire automaticamente a intervalli specificati.
Ogni utente del sistema puo avere il proprio file crontab. Il file contiene un elenco di job cron dove ogni riga definisce una pianificazione usando un'espressione temporale a cinque campi.
Sintassi delle espressioni Cron
Un'espressione cron e composta da cinque campi separati da spazi:
- Minuto (0-59) — specifica a quale minuto eseguire il job
- Ora (0-23) — specifica l'ora in formato 24 ore
- Giorno del mese (1-31) — specifica il giorno del mese
- Mese (1-12) — specifica il mese dell'anno
- Giorno della settimana (0-7, dove 0 e 7 sono domenica)
I caratteri speciali includono: * (qualsiasi valore), / (valori di passo), - (intervalli) e virgola (liste).
Pattern Cron comuni
Le espressioni cron piu utilizzate:
- */5 * * * * — ogni 5 minuti, comunemente usato per controlli di salute
- 0 * * * * — ogni ora al minuto 0
- 0 0 * * * — giornalmente a mezzanotte, standard per backup
- 0 0 * * 1-5 — ogni giorno lavorativo a mezzanotte
- 0 0 1 * * — primo giorno di ogni mese a mezzanotte
- 0 9,17 * * 1-5 — alle 9:00 e 17:00 nei giorni lavorativi
Prova gratuitamente — nessuna registrazione richiesta
Costruisci un'espressione Cron →Casi d'uso comuni
I job cron automatizzano praticamente qualsiasi attivita di sistema ripetitiva:
- Rotazione e pulizia dei log — comprimere o eliminare automaticamente i vecchi file di log
- Backup del database — pianificare comandi regolari di backup
- Generazione di report — compilare report giornalieri, settimanali o mensili
- Pulizia della cache — eliminare periodicamente le voci di cache scadute
- Monitoraggio del sistema — eseguire controlli di salute a intervalli regolari
Consigli e insidie
Anche gli sviluppatori esperti incontrano insidie comuni di cron:
- Consapevolezza del fuso orario — cron usa il fuso orario di sistema. Imposta TZ o usa UTC
- Job sovrapposti — usa flock per evitare istanze multiple simultanee
- Problemi di PATH — cron funziona con un ambiente minimale. Usa sempre percorsi assoluti
- Gestione dell'output — cron invia stdout e stderr via email. Reindirizza verso un file di log
- Debug — controlla /var/log/syslog o /var/log/cron
Domande frequenti
Cron puo pianificare job con precisione al secondo?
Il cron standard non supporta i secondi. Usa un workaround o passa ai timer di systemd.
Qual e la differenza tra cron e i timer systemd?
Cron e il pianificatore Unix tradizionale. I timer systemd offrono precisione sub-minuto e migliore logging ma sono specifici per Linux.
Come testo un job cron?
Esegui prima il comando manualmente, simula l'ambiente cron con env -i, poi pianificalo ogni minuto per verificare.