目前我的博客网站与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
我知道必须与环境有关系,但我无法明确表明它正在运行。
如果我登录机器并进入该文件夹并执行rake generat
它就像魅力一样。
答案 0 :(得分:1)
检查登录时PATH
crontab
给你的rvm
。它可能完全不同。 PATH
做其他事情以及设置路径。您需要确保我们的login
正确无误,并运行rvm放入[[ -s "$HOME/.rvm/scripts/rvm" ]] && source "$HOME/.rvm/scripts/rvm"
个人资料. ~/.bash_profile ; (path_to_script)/update.sh
的脚本。您可以尝试将crontab
作为{{1}}命令运行。
答案 1 :(得分: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