On my Ubuntu Server 16.04.1 I am not able to run two jobs in cron. My crontab looks like this

root@vps:~# crontab -l
# Edit this file to introduce tasks to be run by cron.
# Each task to run has to be defined through a single line
# indicating with different fields when the task will be run
# and what command to run for the task
# To define the time you can provide concrete values for
# minute (m), hour (h), day of month (dom), month (mon),
# and day of week (dow) or use '*' in these fields (for 'any').#
# Notice that tasks will be started based on the cron's system
# daemon's notion of time and timezones.
# Output of the crontab jobs (including errors) is sent through
# email to the user the crontab file belongs to (unless redirected).
# For example, you can run a backup of all your user accounts
# at 5 a.m every week with:
# 0 5 * * 1 tar -zcf /var/backups/home.tgz /home/
# For more information see the manual pages of crontab(5) and cron(8)
# m h  dom mon dow   command

0  6  * * * /usr/sbin/apachectl -k graceful
0  3  * * * /usr/bin/letsencrypt renew

I also tried relative paths with just apachectl and letsencrypt, but nothing has changed.

When I run the commands directly, it's ok and everything works. But the jobs from cron are not executed.

What can be wrong please?

  • 1
    Check /var/log/syslog around 6:00 and 3:00 and see if these jobs have actually run. – Jos Aug 18 '16 at 8:09
  • Check journal of cron service with sudo journalctl -u cron.service --since "03:00" --until "06:05" – iuuuuan Aug 18 '16 at 9:27
  • It looks like the commands are running Aug 19 03:00:01 vps CRON[30681]: (root) CMD (/usr/bin/letsencrypt renew >> /tmp/b.log 2>&1) and Aug 19 06:00:01 vps CRON[31804]: (root) CMD (/usr/sbin/apachectl -k graceful >> /tmp/a.log 2>&1) – LukasBeran Aug 19 '16 at 9:54

You can check two things:

  • Add logging:

    0  6  * * * /usr/sbin/apachectl -k graceful >> /tmp/a.log 2>&1
    0  3  * * * /usr/bin/letsencrypt renew >> /tmp/b.log 2>&1
  • Check logs:

    cat /tmp/a.log && cat /tmp/b.log
    tail -f /var/log/syslog | grep -i cron
  • It looks like the commands are running successfully from the log files. But the behavior is strange, because yesterday I tried to renew certificates manually and one certificate needs renewal. – LukasBeran Aug 19 '16 at 10:12

I think we can consider it as resolved. The cron jobs are running, it was just a luck (or bad luck) with the certificate which needs renewal.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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