Linux

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:

  1. crea uno script in /etc/cron.daily con i comandi per il backup;
  2. rendilo eseguibile con chmod +x nome_script;
  3. 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>&1 alla 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!

Ciao, 👋
piacere di conoscerti.

Iscriviti alla newsletter settimanale gratuita.
Certificata NO-SPAM!

Non inviamo spam! Leggi la nostra Informativa sulla privacy per avere maggiori informazioni.


Articoli correlati

Pulsante per tornare all'inizio

Adblock rilevato

per supportare il sito ti chiedo di disattivare l'Adblock