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