开发者

Cron job can't get it to run, What syntax to use for the crontab?

I'm trying to get a rails job running with CRON. All the examples I find direct me to other rails tools, plugins, gems, etc, which is good, but I really just want to use CRON, regardless. I can run my job ok with the following, but when I've tried cron I haven't had any luck (just doesn't seem to do anything). I want to run it every 3 minutes (for testing).

/usr/bin/env ruby ~/Dropbox/98_2011/webs/apps238/swapper/script/runner /home/durrantm/Dropbox/98_2011/webs/apps238/swapper/app/controllers/scheduled_emails_controller.rb

I'm on Linux Ubuntu.

My PATH has:

/var/lib/gems/1.8/bin:/home/durrantm/.rvm/gems/ruby-1.8.7-p302/bin:/home/durrantm/.rvm/gems/ruby-1.8.7-p302@global/bin:/home/durrantm/.rvm/rubies/ruby-1.8.7-p302/bin:/home/durrantm/.rvm/bin:/home/durrantm/bin:/usr/lo开发者_如何转开发cal/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/pgsql/bin


Cron jobs don't load the user's environment. Try adding RAILS_ENV=production before your command within crontab, or whichever environment you need.

Example:

RAILS_ENV=production
*/3 * * * * /your/command/here

OR, if you want to make sure you have your user's full environment, execute the command within a login shell:

*/3 * * * * bash --login -c '/your/command/here'


Get rid of the home dir expansion character (replace ~ with /home/user/etc/etc) and you should be in good shape (quite likely cron's expansion of ~ doesn't match your users).

If the other parts of the syntax are bothersome there's an easy gui.

http://gnome-schedule.sourceforge.net/

sudo apt-get install gnome-schedule

You'll still have to have the path to your rb file fixed up though.


1- you might not have permissions. try running crontab -e as root

2- why don't you write to a log file to debug the issue:

*/3 * * * * /your/command/here >> /path/to/logfile

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜