Ruby on rails Rake Cron作业错误

Ruby on rails Rake Cron作业错误,ruby-on-rails,cron,rake,Ruby On Rails,Cron,Rake,0/5****/bin/bash-l-c'cd/home/mss/ruby/example&&RAILS\u ENV=development/usr/local/bin/bundle exec rake check\u me\u out--silent>/tmp/cron\u log.log 2>&1 上面的cron抛出一个错误“bash:bundle:command-notfound…” 该命令在命令行中运行良好 任何帮助都将不胜感激。 好吧,我让它工作了。Cron不加载配置文件设置。作为命

0/5****/bin/bash-l-c'cd/home/mss/ruby/example&&RAILS\u ENV=development/usr/local/bin/bundle exec rake check\u me\u out--silent>/tmp/cron\u log.log 2>&1

上面的cron抛出一个错误“bash:bundle:command-notfound…”

该命令在命令行中运行良好

任何帮助都将不胜感激。

好吧,我让它工作了。Cron不加载配置文件设置。作为命令的一部分,我不得不加载bash_配置文件,现在它可以工作了

0/5****/bin/bash-l-c'source~/.bash\u profile&&cd/home/mss/ruby/example&&RAILS\u ENV=development bin/rake check\u me\u out--silent>/tmp/cron\u log.log 2>&1'

好吧,我让它工作了。Cron不加载配置文件设置。作为命令的一部分,我不得不加载bash_配置文件,现在它可以工作了

0/5****/bin/bash-l-c'source~/.bash\u profile&&cd/home/mss/ruby/example&&RAILS\u ENV=development bin/rake check\u me\u out--silent>/tmp/cron\u log.log 2>&1'
我也面临同样的问题

在CRON中设置正确的RVM路径时,我已经解决了这个问题:


*****/bin/bash-l-c'cd/home/alex/Projects/my_app&&source~/.bash_profile&&rvm使用ruby-1.9.3-p194-perf&&bundle exec rake rake RAILS\u ENV=development my_tasks--silent>/tmp/cron_log.log 2>&1'

我也面临同样的问题

在CRON中设置正确的RVM路径时,我已经解决了这个问题:


*****/bin/bash-l-c'cd/home/alex/Projects/my_app&&source~/.bash_profile&&rvm使用ruby-1.9.3-p194-perf&&bundle exec rake rake RAILS_ENV=development my_tasks--silent>/tmp/cron_log.log 2>&1'

在AWS EC2服务器上设置cron时,我也遇到了同样的问题。通过在
config/schedule.rb
文件中显式设置bundle path解决了这个问题

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'
31***/bin/bash-l-c'cd&&RAILS\u ENV=beta/usr/local/bin/bundle exec rake'task\u name'--静默>>日志/cron.log 2>&1'

在AWS EC2服务器上设置cron时,我也遇到了同样的问题。通过在
config/schedule.rb
文件中显式设置bundle path解决了这个问题

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'
31***/bin/bash-l-c'cd&&RAILS\u ENV=beta/usr/local/bin/bundle exec rake'task\u name'--静默>>日志/cron.log 2>&1'

在直接跳入代码之前,是否有任何关于您试图执行的操作的上下文?我假设运行cron作业的用户不知道命令
bundle
或无法访问它。尝试在rails中搜索任务。看到我上面的评论,我可以从我的命令行运行它,没有任何问题,但不能从cron运行。在直接跳入代码之前,有关于您尝试执行什么的上下文吗?我假设cron作业运行的用户不知道命令
,或者没有访问它的权限。尝试在rails中搜索任务。看到我上面的评论,我可以从命令行运行它,没有任何问题,但不能从cron运行。在这个答案中添加一些东西,最好使用$HOME/.bash\u profile(或.profile,取决于您的版本),而不是~/.bash\u profile:)在这个答案中添加一些东西,最好使用$HOME/.bash\u profile(或.profile,具体取决于您的版本),而不是~/.bash_profile:)