2013-09-22 3 views
1

В настоящее время у меня есть сайт блога, который работает с Octopress в связи с Git, но в настоящее время сталкивается с проблемой, что я не могу обновить сайт автоматически с помощью скрипта cron. Я использую скрипт (update.sh) со следующим содержанием:Обновление сайта блога через cron не работает

#!/bin/bash -x 
export PATH=/usr/local/rvm/gems/[email protected]/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

Добавлено '+ [[-s/USR/local/rvm/scripts/rvm]] + source/usr/local/rvm/scripts/rvm' в мой скрипт, и он работает. Скопируйте свой комментарий в качестве ответа и примите его. Благодарю. – khmarbaise

+0

Рад, что он работает :) – lurker

ответ

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.

1

вместо изменения PATH использовать обертку - это обеспечит среду для рубина:

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 
Смежные вопросы