Crontab抛出错误

时间:2016-07-25 11:51:27

标签: ruby-on-rails ruby crontab

我在crontab中的命令下面,当我在终端中运行此命令时工作正常,但是当我在crontab中运行此命令时出现以下错误

  * * * * * cd /home/path/application && RAILS_ENV=development ./bundle exec rake namespacefolder:rake_file

错误:

bundler: command not found: rake
Install missing gem executables with `bundle install`
有人请帮忙。

2 个答案:

答案 0 :(得分:2)

Cron只将最小的一组环境变量传递给您的工作。见here

为cron执行添加-lc选项以使用您的登录环境并​​在crontab顶部设置环境路径。

PATH=$PATH:/usr/bin:/bin:/usr/local/bin
* * * * * /bin/bash -lc "cd ~/home/path/application && RAILS_ENV=development bundle exec rake namespacefolder:rake_file"

答案 1 :(得分:0)

如果没有用捆绑

解决,请试试这个
* * * * * /bin/bash -l -c "cd ~/home/path/application && RAILS_ENV=development bundle exec rake namespacefolder:rake_file"

<强> /斌/庆典

指定用于执行命令的程序

<强> -c

在处理选项后从第一个非选项参数读取并执行命令,然后退出。任何剩余的参数都分配给位置参数,从$ 0开始。

<强> -l <​​/强>

使此shell的行为就像登录直接调用一样。当shell是交互式的时,这相当于使用'exec -l bash'启动登录shell。当shell不是交互式时,将执行登录shell启动文件。 'exec bash -l'或'exec bash --login'将用Bash登录shell替换当前shell。有关登录shell的特殊行为的说明,请参阅Bash启动文件。

请参阅此文档here