Actualmente tengo un sitio de blog que funciona con Octopress en relación con Git, pero actualmente tengo un problema que no puedo actualizar el sitio automáticamente a través de un script de inicio cron. Estoy usando un script (update.sh) con los siguientes contenidos:
#!/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
Pero siempre recibo el siguiente post de error:
+ 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
Sé que debe haber una relación con el medio ambiente, pero no puedo get el punto para hacerlo funcionar.
Si inicio session en la máquina y hago un cd en la carpeta y hago rake generat
, funciona como un hechizo.
Compruebe la PATH
que tiene cuando inicia session en contra de la que le proporciona crontab
. Puede ser bastante diferente. rvm
hace otras cosas además de establecer el path. Deberá asegurarse de que nuestra PATH
sea la correcta y ejecutar la secuencia de commands que rvm coloca en su perfil de login
[[ -s "$HOME/.rvm/scripts/rvm" ]] && source "$HOME/.rvm/scripts/rvm"
. Puedes intentar correr . ~/.bash_profile ; (path_to_script)/update.sh
. ~/.bash_profile ; (path_to_script)/update.sh
. ~/.bash_profile ; (path_to_script)/update.sh
como el command crontab
.
en lugar de cambiar PATH use un contenedor, esto proporcionará un entorno para su ruby:
rvm wrapper ruby-2.0.0-p247 --no-links rake jekyll
y luego usarlo así:
/usr/local/rvm/wrappers/ruby-2.0.0-p247/rake generate /usr/local/rvm/wrappers/ruby-2.0.0-p247/jekyll generate