How to enable logging for cron on Linux

If you’re looking to troubleshoot cron jobs, the best way might be to enable logging. Jack Wallen shows you how.

Cron is a time-based job scheduler in Linux that runs system jobs and allows users to create jobs that are executed on a regular basis. Cron does simple things like regularly emptying the /tmp folder, cleaning PHP sessions, running backups, and so much more. 

But the one problem with cron is that, out of the box, it doesn’t have a dedicated log. This can be a problem when you’re creating your own cron jobs and you need to debug them. 

Without a log, you might never know if that job ran. This happened to me recently, when I created two cronjobs to keep Google Drive in sync with a local directory with rclone. I had no idea if the jobs were running, without comparing the folders. Fortunately, it’s possible to enable logging with cron. 

Let’s find out how. 

Open a terminal window on the Linux machine that houses the cron job and issue the command: 

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

In that file, look for the line that starts with #cron.*. 

Remove the # symbol and then in the second column add:


Save and close the file. 

Next, restart syslog with the command:

 sudo systemctl restart rsyslog

At this point, you should now see the new log file /var/log/cron.log. If you don’t see it immediately, it’ll appear the next time a cron job runs. 

You can then read through that file with the command less /var/log/cron.log and troubleshoot any cronjobs that may or may not be running. 

Also see


Image: Jack Wallen

Source link