捆绑包:运行脚本时找不到命令

问题描述 投票:0回答:1

我想创建一个脚本来在redmine中发送提醒过期问题。当我手动运行这个脚本时,没问题。但是当我创建一个 crontab 来运行它时,它没有运行并显示错误日志:“bundle:找不到命令”。 我的脚本:

#!/bin/bash
cd /opt/redmine-5.0.2
bundle exec rake redmine:send_reminders days=1 RAILS_ENV="production"

我尝试将包的完整路径添加到脚本中

#!/bin/bash
cd /opt/redmine-5.0.2
/usr/local/rvm/gems/ruby-3.0.0/bin/bundle exec rake redmine:send_reminders days=1 RAILS_ENV="production"```

It shown that 

bundler: failed to load command: rake (/usr/local/rvm/gems/ruby-3.0.0/bin/rake)
/usr/local/rvm/rubies/ruby-3.0.0/lib/ruby/3.0.0/bundler/spec_set.rb:87:in `block in materialize': Could not find rake-13.0.6 in any of the sources (Bundler::GemNotFound)
    from /usr/local/rvm/rubies/ruby-3.0.0/lib/ruby/3.0.0/bundler/spec_set.rb:81:in `map!'
    from /usr/local/rvm/rubies/ruby-3.0.0/lib/ruby/3.0.0/bundler/spec_set.rb:81:in `materialize'
    from /usr/local/rvm/rubies/ruby-3.0.0/lib/ruby/3.0.0/bundler/definition.rb:175:in `specs'
    from /usr/local/rvm/rubies/ruby-3.0.0/lib/ruby/3.0.0/bundler/definition.rb:245:in `specs_for'
    from /usr/local/rvm/rubies/ruby-3.0.0/lib/ruby/3.0.0/bundler/definition.rb:227:in `requested_specs'
    from /usr/local/rvm/rubies/ruby-3.0.0/lib/ruby/3.0.0/bundler/runtime.rb:91:in `block in definition_method'
    from /usr/local/rvm/rubies/ruby-3.0.0/lib/ruby/3.0.0/bundler/runtime.rb:20:in `setup'
    from /usr/local/rvm/rubies/ruby-3.0.0/lib/ruby/3.0.0/bundler.rb:149:in `setup'
    from /usr/local/rvm/rubies/ruby-3.0.0/lib/ruby/3.0.0/bundler/setup.rb:20:in `block in <top (required)>'
    from /usr/local/rvm/rubies/ruby-3.0.0/lib/ruby/3.0.0/bundler/ui/shell.rb:136:in `with_level'
    from /usr/local/rvm/rubies/ruby-3.0.0/lib/ruby/3.0.0/bundler/ui/shell.rb:88:in `silence'
    from /usr/local/rvm/rubies/ruby-3.0.0/lib/ruby/3.0.0/bundler/setup.rb:20:in `<top (required)>'
    from /usr/local/rvm/rubies/ruby-3.0.0/lib/ruby/3.0.0/bundler/cli/exec.rb:61:in `require_relative'
    from /usr/local/rvm/rubies/ruby-3.0.0/lib/ruby/3.0.0/bundler/cli/exec.rb:61:in `kernel_load'
    from /usr/local/rvm/rubies/ruby-3.0.0/lib/ruby/3.0.0/bundler/cli/exec.rb:28:in `run'
    from /usr/local/rvm/rubies/ruby-3.0.0/lib/ruby/3.0.0/bundler/cli.rb:497:in `exec'
    from /usr/local/rvm/rubies/ruby-3.0.0/lib/ruby/3.0.0/bundler/vendor/thor/lib/thor/command.rb:27:in `run'
    from /usr/local/rvm/rubies/ruby-3.0.0/lib/ruby/3.0.0/bundler/vendor/thor/lib/thor/invocation.rb:127:in `invoke_command'
    from /usr/local/rvm/rubies/ruby-3.0.0/lib/ruby/3.0.0/bundler/vendor/thor/lib/thor.rb:392:in `dispatch'
    from /usr/local/rvm/rubies/ruby-3.0.0/lib/ruby/3.0.0/bundler/cli.rb:30:in `dispatch'
    from /usr/local/rvm/rubies/ruby-3.0.0/lib/ruby/3.0.0/bundler/vendor/thor/lib/thor/base.rb:485:in `start'
    from /usr/local/rvm/rubies/ruby-3.0.0/lib/ruby/3.0.0/bundler/cli.rb:24:in `start'
    from /usr/local/rvm/rubies/ruby-3.0.0/lib/ruby/gems/3.0.0/gems/bundler-2.2.3/libexec/bundle:49:in `block in <top (required)>'
    from /usr/local/rvm/rubies/ruby-3.0.0/lib/ruby/3.0.0/bundler/friendly_errors.rb:130:in `with_friendly_errors'
    from /usr/local/rvm/rubies/ruby-3.0.0/lib/ruby/gems/3.0.0/gems/bundler-2.2.3/libexec/bundle:37:in `<top (required)>'
    from /usr/local/rvm/gems/ruby-3.0.0/bin/bundle:23:in `load'
    from /usr/local/rvm/gems/ruby-3.0.0/bin/bundle:23:in `<main>'

Thanks for your support.
linux redmine
1个回答
0
投票

编辑您的 crontab 以在开头添加:

SHELL=/bin/bash
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin

然后再试一次。

© www.soinside.com 2019 - 2024. All rights reserved.