cron选项卡执行rails命令

时间:2014-02-04 05:36:00

标签: mysql ruby ubuntu

我每5分钟运行一个cron选项卡,它包含一个需要执行的.sh文件,其中.sh文件由ruby代码组成....有一点我无法理解当我是直接在终端执行.sh文件,它的get执行,但crontab中的相同内容失败..我在crontab中的条目如下:

1) mysqldump -uroot -p'myPassword' redmine144 > redmine144_$(date +%Y_%m_%d_%H_%M).sql;

2) cd /home/ror/Projects/redmine144/;
source /usr/local/rvm/environments/ruby-1.9.3-p194@redmine144
bundle exec rake "hb:project_progress"

第一个采取备份,它工作正常。 第二个运行一些红宝石耙任务(不是工作形式的cron选项卡)

2 个答案:

答案 0 :(得分:2)

通常crontab输出没有定向到stdout,所以你检查你输出的包含cron日志的/ var / log / cron文件。您可以添加输出并重定向错误,有关详细信息,请参阅http://www.thegeekstuff.com/2012/07/crontab-log/并查看upp弹出的错误,您将能够找到它...

答案 1 :(得分:0)

让RVM与cron一起工作真的很棘手。我将从我自己的crontab共享一个片段,该片段已被证明有效(使用系统范围的RVM) - 只需确保您的应用程序路径有.rvmrc指定ruby版本和gemset。

MAILTO=mymail@gmail.com
SHELL=/bin/bash
? ? ? ? ? source /etc/profile.d/rvm.sh; cd /app/home/path && bundle exec rake whatever_you_need RAILS_ENV=production

SHELL很重要。

MAILTO可以帮助调试,以后可以删除。

不要忘记用你的日程表替换问号。