0

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?

3
  • 1
    Check /var/log/syslog around 6:00 and 3:00 and see if these jobs have actually run.
    – Jos
    Aug 18, 2016 at 8:09
  • Check journal of cron service with sudo journalctl -u cron.service --since "03:00" --until "06:05"
    – iuuuuan
    Aug 18, 2016 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, 2016 at 9:54

2 Answers 2

1

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
    
1
  • 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, 2016 at 10:12
0

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.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .