Cronjob不适用于rake命令

时间:2014-03-18 20:11:01

标签: ruby linux cron rake redmine

我完全坚持一个不想工作的cronjob命令。

这是我的问题:

我只想在我的crontab上启动一个rake命令(对于Redmine:通过IMAP检查特定地址上的所有未读电子邮件并创建一个redmine票证)

这是命令:

cd /opt/redmine/ && rake redmine:email:receive_imap RAILS_ENV="production" host=imap.gmail.com username=redmine.check@gmail.com ssl=true port=993 password=MyPassword project=level1support unknown_user=accept no_permission_check=1 allow_override=project

我可以在命令行启动它,一切正常

所以我创建了一个crontab -e并在我的crontab上添加了这一行:

*/10 * * * * cd /opt/redmine/ && rake redmine:email:receive_imap RAILS_ENV="production" host=imap.gmail.com username=redmine.check@gmail.com ssl=true port=993 password=MyPassword project=level1support unknown_user=accept no_permission_check=1 allow_override=project

但它不起作用。

cron似乎运行(我的/var/log/cron文件中没有问题)

我在这个cron上添加了一个日志文件(在行尾)> /tmp/crontabRedmin.log 2&>1,但日志文件中没有写入任何内容。

我创建了一个.sh脚本,我为rake命令(/usr/local/bin/rake&& RAILS_ENV=production bundle exec rake)尝试了不同的语法,一切都在我的命令行上运行,但没有通过cron。

请帮助我知道,我错过了什么。

1 个答案:

答案 0 :(得分:0)

使用cron作业执行rake任务时,不会处理.bash_profile文件,因此您需要将环境变量添加到sell脚本中。

使用以下命令查找Ruby Gems路径:

echo $GEM_HOME
echo $GEM_PATH
echo $PATH

将以下内容添加到shell脚本中:

#!/bin/bash
export PATH=$PATH:/home/user/.rvm/gems/ruby-2.0.0-p0/bin:/home/user/.rvm/gems/ruby-2.0.0-p0@global/bin:/home/user/.rvm/bin

export GEM_HOME=/home/user/.rvm/gems/ruby-2.0.0-p0

export GEM_PATH=/home/user/.rvm/gems/ruby-2.0.0-p0:/home/user/.rvm/gems/ruby-2.0.0-p0@global