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.
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.