I cron job sono attività pianificate che vengono eseguite automaticamente a intervalli specifici nei sistemi Unix-like. Sono spesso utilizzati per la manutenzione del sistema, i backup, l’automazione degli script e altre attività ripetitive. Sia che si tratti di gestire il proprio server o di risolvere un problema, sapere come elencare e visualizzare i cron job è essenziale. Questa guida mostra come visualizzare i job cron esistenti utilizzando il comando crontab.

Che cos’è Crontab?

crontab stands for cron table. It is a file that contains a list of cron jobs for a particular user. Each line in this file represents a task and its scheduled time.

Come visualizzare i lavori cron dell’utente corrente

Per visualizzare i lavori di cron dell’utente attualmente collegato, è sufficiente aprire un terminale ed eseguire

crontab -l

Questo comando visualizza il contenuto del file crontab dell’utente corrente. Se non ci sono lavori pianificati, verrà visualizzato un messaggio del tipo:

no crontab for [username]

Visualizzare i lavori cron di un altro utente (come root)

Se avete i privilegi di root e dovete controllare i lavori cron di un altro utente, usate il flag -u seguito dal nome utente:

sudo crontab -u username -l

Esempio:

sudo crontab -u www-data -l

È utile per gestire le attività a livello di sistema o per risolvere i problemi di cron job per servizi specifici.

Visualizzazione dei lavori cron a livello di sistema

Oltre ai crontab specifici per l’utente, il sistema memorizza le attività pianificate in varie posizioni:

1. File Crontab di sistema

cat /etc/crontab

Questo file contiene le attività pianificate dal sistema e spesso include voci per diversi utenti.

2. Directory dei lavori di cron

Gli script si trovano anche in queste directory:

  • /etc/cron.hourly/

  • /etc/cron.daily/

  • /etc/cron.weekly/

  • /etc/cron.monthly/

Ogni script collocato in queste directory viene eseguito all’intervallo corrispondente.

3. Directory Cron.d

ls /etc/cron.d/

Questa directory contiene ulteriori definizioni di cron per servizi e applicazioni.

Capire il formato di Crontab

Ogni riga di un file crontab segue la seguente sintassi:

* * * * * comando_da_eseguire
│ │ │ │ │
│ │ │ │ └── Giorno della settimana (0 - 7) [domenica=0 o 7]
│ │ │ └──── Mese (1 - 12)
│ │ └────── Giorno del mese (1 - 31)
│ └──────── Ora (0 - 23)
└────────── Minuti (0 - 59)

Esempio:

0 2 * * * /usr/bin/backup.sh

Questo significa “eseguire /usr/bin/backup.sh ogni giorno alle 2:00″.

Suggerimento: Pulire l’output con grep

Se si cercano lavori specifici, è possibile filtrare l’output:

crontab -l | grep backup

Riepilogo

Ecco un rapido riepilogo di come elencare i lavori di cron:

AttivitàComando
Elencare i lavori cron dell’utente correntecrontab -l
Elencare i lavori di cron di un altro utentesudo crontab -u username -l
Visualizzare il crontab di sistemacat /etc/crontab
Elencare i lavori di cron nelle directory di sistemals /etc/cron.*
Visualizzare lavori cron specifici`crontab -l

Padroneggiando questi semplici comandi, è possibile ispezionare e gestire facilmente i lavori cron su qualsiasi sistema Unix o Linux. Una revisione regolare delle attività pianificate garantisce un funzionamento efficiente del sistema ed evita sorprese indesiderate.