CRON e CRONJOB: il cuore dell'automazione nei sistemi Unix Dalla sintassi alla configurazione: come pianificare e gestire i processi cron in modo efficiente

Linux - Come inviare E-Mail con sSMTP (con configurazioni-tipo per GMail, Aruba e Yahoo)

Nei sistemi operativi Unix e Unix-like, il comando cron consente la pianificazione di comandi, ovvero la registrazione di questi presso il sistema per essere poi mandati in esecuzione periodicamente in maniera automatica dal sistema stesso.

Per far questo viene utilizzato un demone, chiamato crond, che in quanto tale è costantemente in esecuzione in background e, una volta al minuto, legge i contenuti del registro dei comandi pianificati (crontab) ed esegue quelli per cui si è esaurito il periodo di attesa. Un comando mandato in esecuzione da crontab viene chiamato cronjob.

Struttura del Crontab

Ogni utente su un sistema Unix/Linux può creare e gestire il proprio file crontab, che elenca tutti i cronjob di quell'utente. Per modificare il proprio crontab si utilizza il comando:

Per visualizzare i cronjob esistenti:

Per rimuovere tutti i cronjob dell'utente corrente:

Sintassi

La sintassi di un comando cron si divide in due sottogruppi:

  1. Sequenza di cinque campi che rappresentano rispettivamente:
    • Minuti (0-59)
    • Ore (0-23)
    • Giorno del mese (1-31)
    • Mese (1-12)
    • Giorno della settimana (0-6, dove 0 corrisponde a domenica)
  2. Il comando da eseguire, che va immesso nella stessa forma con cui si eseguirebbe da terminale.

Ad esempio:

Questo cronjob eseguirà lo script script.sh ogni lunedì alle 2:30 di notte.

Un metodo utile per testare e verificare la sintassi è utilizzare il sito web Crontab Guru, che offre un'interfaccia intuitiva per interpretare e generare espressioni cron.

Esempi Comuni di CronJob

Ecco alcune configurazioni comuni:

  • Esecuzione ogni minuto:
  • Esecuzione ogni ora:
  • Esecuzione ogni giorno alle 3:00 del mattino:
  • Esecuzione ogni primo giorno del mese alle 12:00:
  • Esecuzione ogni domenica alle 22:00:

Debugging e Log dei CronJob

Per verificare che un cronjob sia stato eseguito correttamente, è possibile controllare i log di sistema:

Oppure, per verificare gli errori specifici dei cronjob di un utente:

Se un cronjob non viene eseguito come previsto, assicurarsi di:

  • Controllare i permessi del file che deve essere eseguito (chmod +x script.sh).
  • Utilizzare il percorso assoluto nei comandi (/usr/bin/python3 /home/user/script.py anziché python3 script.py).
  • Redirigere l'output su file per verificare eventuali errori:

Conclusione

Il comando cron è uno strumento essenziale per l'automazione delle operazioni su sistemi Unix/Linux. Con una corretta configurazione e una buona conoscenza della sintassi, è possibile gestire con facilità l'esecuzione periodica di comandi e script, ottimizzando così i processi di amministrazione e manutenzione di un server.

About Ryan

IT Project Manager, Web Interface Architect e Lead Developer di numerosi siti e servizi web ad alto traffico in Italia e in Europa. Dal 2010 si occupa anche della progettazione di App e giochi per dispositivi Android, iOS e Mobile Phone per conto di numerose società italiane. Microsoft MVP for Development Technologies dal 2018.

View all posts by Ryan

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *


Il periodo di verifica reCAPTCHA è scaduto. Ricaricare la pagina.

Questo sito utilizza Akismet per ridurre lo spam. Scopri come vengono elaborati i dati derivati dai commenti.