Tuesday, January 25, 2011

UBUNTU: why my crontab isn't running the code?

Hi all I've configured manually the /etc/crontab to add an event that runs on day 9 every months...

The Cron is running, but it didn't runned my code yet... My code is at the last line:

17 *    * * *   root    cd / && run-parts --report /etc/cron.hourly
25 6    * * *   root    test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.daily )
47 6    * * 7   root    test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.weekly )
52 6    1 * *   root    test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.monthly )
23 9    9 * *   root    wget "http://www.mysite.com/url.api?dowhat=mensalcheck" --no-cache --read-timeout=1600 -O "/var/log/mysite.com/$(date "+url-api.%d-%m-%y.log")"
  • To make sure your cron is run, use "crontab -e" or "sudo crontab -e" to edit your cron jobs. Then when you're done editing and saved the file, crontab will install the new cronjob properly to be executed the next time.

    So, use sudo crontab -e and make sure you at least do one modification to the file.

    Also cron usually has no PATH variable, meaning it does know where to find wget, so the best is to put /usr/bin/wget.

    theotherreceive : crontab -e doesn't edit /etc/crontab
    Dennis Williamson : `cron` usually has a minimal PATH, rather than no PATH, but it is a good idea to fully specify directory names.
    From Weboide
  • Your problem is that cron sees the percent signs as special. It converts them to newlines. You need to escape the percent signs to make them work normally.

    23 9 9 * * root wget "http://www.mysite.com/url.api?dowhat=mensalcheck" --no-cache --read-timeout=1600 -O "/var/log/mysite.com/$(date "+url-api.\%d-\%m-\%y.log")"
    

    If you check your log file or root's email, you should see error messages complaining about the problem.

    Ryan Thompson : Or better yet, put your command in a simple shell script, and then call the script from the cromtab.

0 comments:

Post a Comment