1

目前,我有一个博客站点,它与Octopress一起与 Git 合作,但目前面临一个问题,即我无法通过 cron 触发的脚本自动更新站点。我正在使用具有以下内容的脚本(update.sh):

#!/bin/bash -x
export PATH=/usr/local/rvm/gems/ruby-2.0.0-p247@global/bin/:/usr/local/rvm/bin/rvm:$PATH
cd /usr/local/repositories 
cd supose.git
git fetch -q --all
cd /usr/local/vhost/octopress
git pull
rake generate
/usr/local/rvm/gems/ruby-2.0.0-p247/bin/jekyll generate

但我总是收到以下错误消息:

+ rake generate
## Generating Site with Jekyll
+ /usr/local/rvm/gems/ruby-2.0.0-p247/bin/jekyll generate
invalid command. Use --help for more information

我知道必须与环境有关系,但我无法理解让它运行的意义。

如果我登录机器并 cd 进入文件夹并执行rake generat它就像一个魅力。

4

2 回答 2

1

检查PATH您登录时所拥有的crontab内容。它可能完全不同。rvm做其他事情以及设置路径。您需要确保我们PATH的设置正确,然后运行 ​​rvm 放入您的login配置文件中的脚本[[ -s "$HOME/.rvm/scripts/rvm" ]] && source "$HOME/.rvm/scripts/rvm"。您可以尝试. ~/.bash_profile ; (path_to_script)/update.sh作为crontab命令运行。

于 2013-09-22T11:35:07.307 回答
1

而不是更改 PATH 使用包装器 - 这将为您的 ruby​​ 提供环境:

rvm wrapper ruby-2.0.0-p247 --no-links rake jekyll

然后像这样使用它:

/usr/local/rvm/wrappers/ruby-2.0.0-p247/rake   generate
/usr/local/rvm/wrappers/ruby-2.0.0-p247/jekyll generate
于 2013-09-22T12:11:16.543 回答