Come utilizzare al meglio crontab in Linux

Pubblicato il 8 Novembre 2025 • Categoria: Linux

Se sei un utente Linux, probabilmente hai già sentito parlare di crontab. È uno strumento potente e fondamentale per automatizzare compiti ripetitivi, senza doverli eseguire manualmente ogni volta. In questa guida vediamo cos'è, come funziona e come usarlo al meglio.

Cos'è crontab?

crontab è l'acronimo di "cron table" (tabella cron). È un comando che permette di pianificare l'esecuzione automatica di comandi o script a intervalli regolari (ogni minuto, ora, giorno, settimana, mese, anno).

Il programma che gestisce queste pianificazioni si chiama crond (cron daemon), che gira in background e controlla costantemente la tabella di pianificazione (crontab) per vedere se ci sono compiti da eseguire.

È perfetto per attività come:

Come funziona crontab?

Ogni utente ha la propria tabella cron, gestita dal comando crontab. La sintassi di una riga nella tabella è:

MINUTE HOUR DAY_OF_MONTH MONTH DAY_OF_WEEK COMMAND

Dove ogni campo rappresenta:

Si possono usare anche asterischi (*) per indicare "ogni", numeri separati da virgole per elencare valori, range (es. 1-5) o passi (es. /5 per ogni 5 unità).

Accedere e modificare la tabella crontab

Per visualizzare la tua tabella cron (come utente corrente), usa:

crontab -l

Per editare la tua tabella cron, usa:

crontab -e

Questo aprirà l'editor di testo predefinito (solitamente vi o nano). Aggiungi le tue righe di pianificazione e salva.

💡 Consiglio: Se non sai quale editor usare, puoi impostarne uno con export EDITOR=nano prima di eseguire crontab -e.

Se devi eseguire comandi che richiedono i privilegi di amministratore (ad esempio aggiornamenti di sistema), devi modificare la tabella di root con sudo crontab -e. Fai attenzione: i cron job di root hanno pieno accesso al sistema.

Alcuni esempi pratici

1. Eseguire un backup giornaliero alle 2:00 AM

Supponiamo di voler fare un backup della cartella /home/utente/documenti ogni giorno alle 2:00 AM:

0 2 * * * /bin/tar -czf /backup/documenti_$(date +\%Y\%m\%d).tar.gz /home/utente/documenti

Spiegazione: 0 2 * * * significa "ogni giorno alle 2:00". Il comando crea un archivio compresso con la data nel nome.

💡 Nota: In crontab, il carattere % deve essere preceduto da una barra rovesciata (\%) perché altrimenti viene interpretato come un ritorno a capo.

2. Pulire una cartella temporanea ogni lunedì alle 3:00 AM

Per rimuovere file più vecchi di 7 giorni da una cartella temporanea:

0 3 * * 1 /usr/bin/find /tmp/miei_file -type f -mtime +7 -delete

Questo è molto più sicuro rispetto alla cancellazione diretta dei log di sistema, che potrebbe causare malfunzionamenti.

3. Aggiornare il sistema ogni domenica alle 4:00 AM

Per mantenere il sistema aggiornato automaticamente (richiede privilegi di root):

0 4 * * 0 /usr/bin/apt update && /usr/bin/apt upgrade -y
⚠️ ATTENZIONE: Questo cron job deve essere inserito nella tabella di root (con sudo crontab -e). L'aggiornamento potrebbe richiedere un riavvio. Assicurati che il sistema non sia in uso durante l'esecuzione.

4. Invia una mail di notifica ogni giorno alle 9:00 AM

Per ricevere una notifica quotidiana:

0 9 * * * echo "Buongiorno! Il sistema è operativo." | /usr/bin/mail -s "Notifica giornaliera" utente@dominio.it

Assicurati che un servizio di posta (come postfix o ssmtp) sia installato e configurato correttamente.

Comandi utili

Consigli finali

Usare crontab è un modo eccellente per rendere il tuo sistema più efficiente. Tuttavia, ricorda di:

Con un po' di pratica, crontab diventerà un tuo alleato prezioso per mantenere il sistema ordinato e automatizzato!

Prodotti Consigliati

Potrebbe interessarti anche...

Prodotti utili per ottimizzare e mantenere al meglio il tuo sistema.