Var finns loggen för cron/crontab?

Jag vill kontrollera att mitt cron-jobb utförs och vid vilken tidpunkt. Jag tror att det finns en logg för mina jobb sudo crontab -e, men var?

Jag sökte på Google och hittade rekommendationer om att titta i /var/log (där jag inte ser något med 'cron' i namnet) och att redigera filen /etc/syslog.conf som jag inte heller har.

På en standardinstallation loggas cron-jobben till

/var/log/syslog

Du kan se bara cron-jobb i den loggfilen genom att köra

 grep CRON /var/log/syslog

Om du inte har konfigurerat om något kommer posterna att finnas där.

Kommentarer (12)

Du kan skapa en cron.log-fil som bara innehåller de CRON-poster som visas i syslog. Observera att CRON-jobb fortfarande visas i syslog om du följer följande anvisningar.

Öppna filen

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

Hitta den rad som börjar med:

#cron.*

Avkommentera den raden, spara filen och starta om rsyslog:

sudo service rsyslog restart

Du bör nu se en cronloggfil här:

/var/log/cron.log

Cronaktivitet kommer nu att loggas i denna fil (utöver syslog).

Observera att i cron.log kommer du att se poster för när cron körde skript i /etc/cron.hourly, cron.daily, etc. - t.ex. något i stil med:

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

Du kommer dock inte att se mer information om vilka skript som faktiskt kördes i /etc/cron.daily eller /etc/cron.hourly, om inte dessa skript direkt skickar utdata till cron.log (eller kanske till någon annan loggfil).

Om du vill kontrollera om en crontab körs och inte behöver leta efter den i cron.log eller syslog, skapa en crontab som omdirigerar utdata till en loggfil som du själv väljer - något i stil med:

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

Detta kommer att omdirigera all standardutgång och alla fel som kan produceras av skriptet som körs till den angivna loggfilen.

Kommentarer (5)

Ibland kan det vara bra att övervaka den kontinuerligt, i så fall:

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