Dov'è il log di cron / crontab?

Voglio verificare che il mio cron job sia in esecuzione e a che ora. Credo che ci sia un log per i miei job sudo crontab -e, ma dove?

Ho cercato su Google e ho trovato raccomandazioni di guardare in /var/log (in cui non vedo nulla con 'cron' nel nome) e di modificare il file /etc/syslog.conf che non ho.

In un'installazione predefinita i lavori di cron vengono registrati in

/var/log/syslog

Si possono vedere solo i lavori di cron in quel file di log eseguendo

 grep CRON /var/log/syslog

Se non hai riconfigurato nulla, le voci saranno lì dentro.

Commentari (12)

Puoi creare un file cron.log per contenere solo le voci CRON che appaiono nel syslog. Nota che i lavori CRON saranno ancora visualizzati nel syslog se segui le seguenti indicazioni.

Aprire il file

/etc/rsyslog.d/50-default.conf

Trova la linea che inizia con:

#cron.*

decommenta quella linea, salva il file e riavvia rsyslog:

sudo service rsyslog restart

Ora dovresti vedere un file di log di cron qui:

/var/log/cron.log

L'attività di cron sarà ora registrata in questo file (in aggiunta al syslog).

Nota che in cron.log vedrai voci per quando cron ha eseguito script in /etc/cron.hourly, cron.daily, ecc. - ad esempio qualcosa come

Apr 12 14:17:01 cd CRON[14368]: (root) CMD (   cd / && run-parts --report /etc/cron.hourly)

Tuttavia, non si vedranno ulteriori informazioni su quali script sono stati effettivamente eseguiti all'interno di /etc/cron.daily o /etc/cron.hourly, a meno che questi script diano un output diretto al cron.log (o forse a qualche altro file di log).

Se vuoi verificare se un crontab è in esecuzione e non devi cercarlo in cron.log o syslog, crea un crontab che reindirizzi l'output a un file di log di tua scelta - qualcosa come:

01 14 * * * /home/joe/myscript >> /home/log/myscript.log 2>&1

Questo reindirizzerà tutto l'output standard e gli errori che possono essere prodotti dallo script che viene eseguito al file di log specificato.

Commentari (5)

A volte può essere utile monitorarlo continuamente, in questo caso:

tail -f /var/log/syslog | grep CRON
Commentari (1)