我正在尝试在 ubuntu 上运行备份脚本。我的问题是我尝试使用我在 ubuntu 上设置的 postgres 用户帐户来执行此操作。我认为让这个帐户运行 cron 作业是最好的,因为它更像是一个通用帐户,如果我有一天离开公司,至少他们不必担心如果他们破坏我在服务器上的用户帐户,任何 cron 作业可能会被破坏,但是,我很难让它工作,主要是因为我的 postgres 用户帐户无法看到相同的 ruby 环境(我认为)。
我正在运行 rvm 来控制我的 ruby 环境,在将直接路径添加到 rvm 安装下的 bundle 后,我仍然收到错误。我现在不知道还能做什么。
错误:
/home/my_personnel_account/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/site_ruby/1.9.1/rubygems/dependency.rb:247:in `to_specs': Could not find bundler (>= 0) amongst [bigdecimal-1.1.0, io-console-0.3, json-1.5.4, minitest-2.5.1, rake-0.9.2.2, rdoc-3.9.4] (Gem::LoadError)
from /home/my_personnel_account/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/site_ruby/1.9.1/rubygems/dependency.rb:256:in `to_spec'
from /home/my_personnel_account/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/site_ruby/1.9.1/rubygems.rb:1231:in `gem'
from /home/my_personnel_account/.rvm/gems/ruby-1.9.3-p194@global/bin/bundle:22:in `<main>'
答案1
有两个选项:
首先 - 为该用户添加 cron 作业:
crontab -e -u otheruser
第二步 - 使用 su/sudo 在其他帐户下执行命令。
sudo -u otheruser command
确保您定义了所有必需的环境变量 - 例如 PATH、GEM_HOME、GEM_PATH。
答案2
以下是配置 cron 的基本文档:
https://rvm.io/integration/cron/
还有一种新方法:
https://github.com/wayneeseguin/rvm/blob/master/help/cron.md