Take the 2-minute tour ×
Ask Ubuntu is a question and answer site for Ubuntu users and developers. It's 100% free, no registration required.

I want to verify if my cron job is executing and what time. I believe there is a log for my sudo crontab -e jobs, but where?

I searched google and it I found references to look in /var/log (which I do not see anything with 'cron') and to edit the file /etc/syslog.conf which I also do not have. ?

share|improve this question
add comment

3 Answers

On a default installation the cron jobs get logged to

/var/log/syslog

You can see just cron jobs in that logfile by running

 grep CRON /var/log/syslog

If you haven't reconfigured anything,the entries will be in there.

share|improve this answer
3  
If there is no MTA installed, cron just throws the job output away. –  Barry Kelly Nov 18 '13 at 23:19
    
The cron log may be in another file in the /var/log/ directory. Check for cron.log or equivalent. –  Navigatron Jan 31 at 10:21
add comment

You can create a cron.log file to contain just the CRON entries that show up in syslog. Note that CRON jobs will still show up in syslog if you follow the following directions.

Open the file

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

Find the line that starts with:

#cron.*

uncomment that line, save the file, and restart rsyslog:

sudo service rsyslog restart

You should now see a cron log file here:

/var/log/cron.log

Cron activity will now be logged to this file (in addition to syslog).

Note that in cron.log you will see entries for when cron ran scripts in /etc/cron.hourly, cron.daily, etc. - e.g. something like:

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

However, you will not see more information about what scripts were actually ran inside /etc/cron.daily or /etc/cron.hourly, unless those scripts direct output to the cron.log (or perhaps to some other log file).

If you want to verify if a crontab is running and not have to search for it in cron.log or syslog, create a crontab that redirects output to a log file of your choice - something like:

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

This will redirect all standard output and errors that may be produced by the script that is run to the log file specified.

share|improve this answer
    
With my opinion, this answer is better in future. So your syslog file is more clear. –  shgnInc Dec 22 '13 at 8:36
1  
To also exclude the cron log from syslog you can change the line *.*;auth,authpriv.none -/var/log/syslog to *.*;auth,authpriv.none,cron.none -/var/log/syslog. –  Koen. Feb 13 at 11:35
add comment

Sometimes it can be useful to continuously monitor it, in that case:

tail -f /var/log/syslog | grep CRON
share|improve this answer
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.