1. Che cos’è Cron?
Cron è un pianificatore di lavori basato sul tempo per sistemi operativi Linux e Unix. Viene utilizzato principalmente da amministratori di sistema e sviluppatori per automatizzare attività che devono essere eseguite regolarmente. Cron è preinstallato su Ubuntu ed è ampiamente usato per la gestione dei server, i backup, l’esecuzione programmata di script e varie altre attività di automazione.
Come funziona Cron
Cron funziona utilizzando un file chiamato “crontab”, dove vengono specificati i comandi da eseguire a orari o intervalli designati. Il file crontab è composto da cinque campi, ognuno dei quali consente una programmazione precisa delle attività in base ai valori specificati.
- Minute (0–59)
- Ora (0–23)
- Giorno del mese (1–31)
- Mese (1–12)
- Giorno della settimana (0–7, dove 0 e 7 rappresentano la domenica)
Ad esempio, se desideri programmare un’attività di backup da eseguire ogni giorno alle 5 del mattino, dovresti aggiungere la seguente riga al tuo file crontab:
0 5 * * * tar -zcf /var/backups/home.tgz /home/
Questo dimostra come Cron possa essere utilizzato per automatizzare in modo efficiente i lavori ricorrenti.
Chi dovrebbe usare Cron?
Cron è indispensabile per gli amministratori di sistema, gli sviluppatori che desiderano semplificare le attività quotidiane e chiunque abbia bisogno di eseguire script programmati in un ambiente server.

2. Configurare i processi Cron
Modifica del file crontab
Per configurare un processo Cron, è necessario accedere e modificare il file “crontab”. Su Ubuntu, è possibile aprire il file crontab specifico dell’utente usando il seguente comando:
crontab -e
Sintassi di base di un processo Cron
Una voce di un processo Cron è composta da campi temporali seguiti dal comando da eseguire. Il formato generale è:
Minute Hour Day Month Weekday Command
Ad esempio, il seguente processo Cron crea un backup della /home/
directory ogni giorno alle 5 del mattino:
0 5 * * * tar -zcf /var/backups/home.tgz /home/
Salvataggio e verifica delle modifiche al crontab
Una volta aggiunto un processo al file crontab, salva e chiudi l’editor per applicare le modifiche. Per verificare i processi Cron attivi, usa il seguente comando:
crontab -l
3. Pianificazione Avanzata dei Cron Job
Esecuzione di Job a Intervalli Personalizzati
Per eseguire un job a intervalli specifici, ad esempio ogni minuto o ogni cinque minuti, usa la seguente sintassi:
- Ogni minuto:
* * * * * /path/to/script.sh
- Ogni cinque minuti:
*/5 * * * * /path/to/script.sh
Esecuzione di Job in Giorni e Orari Specifici
Se devi eseguire un’attività in giorni specifici, usa il campo weekday. Ad esempio, per eseguire uno script ogni lunedì alle 02:15, usa:
15 2 * * 1 /path/to/script.sh
4. Gestione degli errori e risoluzione dei problemi
Problemi comuni con i Cron job
Cron job non si avvia
Se il tuo cron job non viene eseguito, controlla i seguenti punti chiave:
- Verifica i permessi: Assicurati che lo script o il comando abbia i permessi di esecuzione.
- Usa Percorsi Completi: Cron viene eseguito in un ambiente limitato, quindi specifica il percorso completo per i tuoi comandi e file.
/usr/bin/python3 /path/to/script.py
Controllo dei log di Cron
Cron registra i dettagli della sua esecuzione in /var/log/syslog
. Per controllare i log alla ricerca di errori relativi a Cron, usa:
grep CRON /var/log/syslog

5. Considerazioni sulla sicurezza
Controllo dell’accesso degli utenti
Per limitare quali utenti possono programmare i job di Cron, è possibile utilizzare i file /etc/cron.allow
e /etc/cron.deny
. Elencando gli utenti in /etc/cron.allow
, solo quegli utenti saranno autorizzati a creare job di Cron.
echo "user_name" >> /etc/cron.allow
Sicurezza dell’accesso e job di Cron
Quando si eseguono job di Cron che richiedono autenticazione, è importante evitare errori legati alle password. L’uso dell’automazione delle chiavi SSH o di un gestore di password sicuro può aiutare a prevenire i fallimenti di autenticazione.
6. Utilizzare Anacron: Automatizzare le attività poco frequenti
Che cos’è Anacron?
Anacron è un pianificatore di lavori progettato per sistemi che non sono in funzione continuamente. A differenza di Cron, che richiede che il sistema sia online all’ora programmata, Anacron garantisce che i lavori mancati vengano eseguiti quando il sistema viene riacceso. Questo lo rende ideale per desktop e laptop.
7. Casi d’uso pratici per i Cron job
Automatizzare i backup
Configurare un cron job per automatizzare i backup con una programmazione regolare può aiutare a prevenire la perdita di dati. Di seguito è riportato un esempio di cron job che crea un backup della directory /home/
ogni giorno alle 2:00 e include la data corrente nel nome del file.
0 2 * * * tar -zcf /var/backups/home_backup_$(date +%Y-%m-%d).tgz /home/
8. Conclusion
Sfruttando Cron e Anacron, è possibile automatizzare in modo efficiente le attività ricorrenti e migliorare l’affidabilità delle operazioni del tuo sistema. Quando usati correttamente, questi strumenti riducono i costi operativi e garantiscono che le attività di manutenzione essenziali vengano eseguite senza intervento manuale. Implementali nel tuo sistema per sperimentare i vantaggi dell’automazione.