Pianificare le operazioni su Linux: guida pratica per usare Crond
Ti è mai capitato di voler far eseguire al tuo sistema Linux un aggiornamento in un preciso momento della giornata, magari mentre non sei davanti al PC? Oppure di voler programmare un backup dei dati importanti durante la notte, quando il computer è libero? O semplicemente vuoi che il computer si spenga automaticamente ad una certa ora? Se la risposta è sì, allora sei nel posto giusto. In questo articolo scoprirai come utilizzare Crond per pianificare le operazioni su Linux in modo semplice, efficace e completamente automatizzato. Ti guiderò passo passo: dalla configurazione base fino a qualche trucco più avanzato. Sei pronto? Iniziamo!
Cos’è Crond e a cosa serve
Crond è uno degli strumenti più potenti e versatili dei sistemi Linux. Si tratta di un servizio che permette di eseguire comandi e script in maniera automatica a determinati orari, senza che tu debba ricordartelo ogni volta. In pratica, è il “maggiordomo” del tuo sistema operativo: gli dai delle istruzioni e lui le esegue con puntualità svizzera.
Grazie a Crond puoi pianificare le operazioni su Linux in maniera molto precisa, semplicemente configurando un file chiamato /etc/crontab con un editor di testo. Al suo interno puoi impostare l’orario esatto, con la precisione in minuti (e anche secondi se usi strumenti avanzati come systemd timers), in cui eseguire un’operazione o un gruppo di operazioni.
Per esempio, puoi usarlo per:
- aggiornare automaticamente il sistema ogni notte;
- eseguire backup programmati;
- pulire file temporanei e log invecchiati;
- accendere o spegnere servizi in orari specifici;
- eseguire controlli periodici su file e directory.
Configurare Crond tramite il file /etc/crontab
Il cuore di Crond è il file /etc/crontab. Qui puoi inserire le operazioni da eseguire, una per riga, secondo uno schema preciso. Puoi modificarlo facilmente con il tuo editor di testo preferito; in questo esempio useremo nano:
$ sudo nano /etc/crontab
Le righe che inserirai nel file devono seguire questo schema:
mm hh gg MM GG user comando
Ecco il significato dei campi:
- mm: minuto di esecuzione (0-59);
- hh: ora di esecuzione (0-23);
- gg: giorno del mese (1-31);
- MM: mese dell’anno (1-12);
- GG: giorno della settimana (0-6, dove 0 è Domenica e 6 è Sabato);
- user: l’utente con cui verrà eseguito il comando;
- comando: il comando da eseguire.
Ogni campo può contenere più valori separati da virgole oppure intervalli se separati da trattino. Puoi usare anche il carattere jolly * per indicare “qualsiasi valore”. Per esempio, se vuoi far partire un comando ogni quindicesimo minuto dalle 8 alle 16 (di tutti i giorni e di tutti i mesi) come utente root, dovrai scrivere:
15 8-16 * * * root /percorso/comando_da_eseguire
Ogni volta che modifichi il file /etc/crontab, devi farlo ricaricare a Crond con il comando:
$ sudo /etc/init.d/crond restart
Sulle distribuzioni più recenti (Debian 12, Ubuntu 24.04 e simili) puoi usare anche il comando:
$ sudo systemctl restart cron
per ottenere lo stesso risultato.
Usare le cartelle cron.daily, cron.weekly e cron.monthly
Se usi una distribuzione Debian o Ubuntu, troverai tre cartelle molto comode che semplificano ulteriormente la gestione delle operazioni automatiche. Queste directory contengono script che Crond esegue automaticamente ogni giorno, ogni settimana e ogni mese. Sono perfette per chi non vuole editare direttamente il file /etc/crontab:
/etc/cron.daily
/etc/cron.weekly
/etc/cron.monthly
All’interno di queste cartelle sono già presenti script di sistema, come quelli che aggiornano pacchetti o compattano file di log. Ma tu puoi inserirci i tuoi script personalizzati: basta creare un file eseguibile con il tuo comando e posizionarlo nella cartella desiderata. Per esempio, se vuoi eseguire un backup quotidiano:
- crea uno script in
/etc/cron.dailycon i comandi per il backup; - rendilo eseguibile con
chmod +x nome_script; - Crond farà il resto automaticamente.
Esempio pratico: automatizzare operazioni in una scuola
Immagina un laboratorio scolastico in cui vuoi disattivare il collegamento a Internet ad ogni suono della campanella. Puoi farlo con un file crontab configurato così:
# /etc/crontab: system-wide crontab
SHELL=/bin/sh
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
# m h dom mon dow user command
17 * * * * root run-parts --report /etc/cron.hourly
25 6 * * * root test -x /usr/sbin/anacron || run-parts --report /etc/cron.daily
47 6 * * 7 root test -x /usr/sbin/anacron || run-parts --report /etc/cron.weekly
52 6 1 * * root test -x /usr/sbin/anacron || run-parts --report /etc/cron.monthly
# inizio prima ora
00 08 * * * root /etc/script/squid_spegni
# inizio seconda ora
10 09 * * * root /etc/script/squid_spegni
# inizio terza ora
10 10 * * * root /etc/script/squid_spegni
# inizio quarta ora
05 11 * * * root /etc/script/squid_spegni
# inizio quinta ora
15 12 * * * root /etc/script/squid_spegni
# inizio sesta ora
10 13 * * * root /etc/script/squid_spegni
# inizio pomeriggio
00 14 * * * root /etc/script/squid_accendi
In questo modo ogni ora scolastica viene gestita in automatico senza intervento umano.
Consigli avanzati per usare Crond al meglio
Ora che hai visto la base, ecco qualche consiglio pratico per rendere le tue pianificazioni più potenti e sicure:
- Usa output di log: aggiungi
>/percorso/logfile 2>&1alla fine dei comandi per registrare l’esito degli script. Così saprai sempre se qualcosa è andato storto. - Prova prima manualmente: esegui lo script a mano per assicurarti che funzioni prima di inserirlo in Crond.
- Commenta le righe: usa
#per spiegare cosa fa ogni riga nel tuo crontab; tornerà utile tra qualche mese! - Preferisci gli script ai comandi diretti: scrivi comandi complessi dentro file .sh e richiama solo lo script dal crontab. È più ordinato e facile da mantenere.
- Occhio agli orari: ricorda che Crond usa il fuso orario del sistema. Se cambi timezone, controlla i tuoi crontab.
Infine, se usi versioni moderne di Linux, dai un’occhiata anche ai systemd timers: sono un’alternativa a Crond integrata in systemd che offre opzioni ancora più flessibili, come esecuzioni dopo eventi di sistema o ritardi precisi in secondi. Ma se vuoi semplicità e compatibilità, Crond resta la scelta migliore.
Conclusioni
Ora hai tutte le informazioni necessarie per pianificare le operazioni su Linux con Crond. Che tu voglia aggiornare automaticamente il sistema, fare backup notturni o spegnere servizi a orari precisi, questo strumento è il tuo migliore alleato. Con pochi comandi e un po’ di organizzazione, il tuo PC lavorerà per te anche quando sei lontano dalla tastiera. Provalo subito: dopo averlo configurato la prima volta, non potrai più farne a meno!




