0/5 * * * * /bin/bash -l -c 'cd /home/mss/ruby/example && RAILS_ENV=development /usr/local/bin/bundle exec rake check_me_out --silent >> /tmp/cron_log.日志 2>&1'
上面的 cron 抛出错误“bash: bundle: command not found...”
该命令从命令行工作得很好
任何帮助将不胜感激。
0/5 * * * * /bin/bash -l -c 'cd /home/mss/ruby/example && RAILS_ENV=development /usr/local/bin/bundle exec rake check_me_out --silent >> /tmp/cron_log.日志 2>&1'
上面的 cron 抛出错误“bash: bundle: command not found...”
该命令从命令行工作得很好
任何帮助将不胜感激。
好的,所以我得到了这个工作。Cron 不加载配置文件设置。我必须将 bash_profile 作为命令的一部分加载,现在它可以工作了。
0/5 * * * * /bin/bash -l -c 'source ~/.bash_profile && cd /home/mss/ruby/example && RAILS_ENV=development bin/rake check_me_out --silent >> /tmp/cron_log.log 2>&1'
我遇到了同样的问题。
在 CRON 中设置正确的 RVM 路径时,我已经解决了它:
** * * * /bin/bash -l -c 'cd /home/alex/Projects/my_app && source ~/.bash_profile && rvm use ruby-1.9.3-p194-perf && bundle exec rake RAILS_ENV=development my_tasks - -silent >> /tmp/cron_log.log 2>&1'
当我在 AWS EC2 服务器上设置 cron 时,我也遇到了同样的问题。它是通过在config/schedule.rb
文件中明确设置捆绑路径来解决的。
set :bundle_command, "/usr/local/bin/bundle exec"
这会在 cron 中创建条目,例如:
30 1 * * * /bin/bash -l -c 'cd <app_path> && RAILS_ENV=beta /usr/local/bin/bundle exec rake 'task_name' --silent >> log/cron.log 2>&1'