Setup Crontab para trabalhar com pepino

0

Estou tentando configurar o crontab para trabalhar com o pepino. Até agora, consegui obter o crontab para executar um comando ruby, mas não um comando pepino.

Isto é o que eu tenho no crontab:

          • ~ / test.sh > ~ / out.log 2 > err.log

Se eu fizer isso no test.sh, tudo funcionará bem:

/ Caminho absoluto para ruby ~ / test.rb

No entanto, se eu fizer isso em test.sh, ele falhou:

/ Absolute-path-to-cucumber ~ / test.feature

Isto é o que é impresso no err.log:

nenhum arquivo para carregar - capybara / cucumber (LoadError)

No entanto, se eu executar o test.sh (/ Absolute-path-to-cucumber ~ / test.feature) no terminal, não há problema.

Então, estou pensando que o cron e o terminal não estão usando a mesma versão do ruby (portanto, um problema de ambiente).

Quando eu fiz um $ ruby -rpp -e 'pp ENV' no terminal, isso me deu isto:

"_" = > "/ Usuários / nome / .rvm / rubies / ruby-1.9.3-p392 / bin / ruby"

Quando eu fiz o mesmo comando no cron, ele me deu isso no arquivo de log:

"_" = > "/ usr / bin / ruby"

Então, parece que o cron está usando o sistema ruby (1.8.7) enquanto o terminal está usando o usuário ruby (1.9.3). Eu tenho tentado todos os tipos de coisas que eu pude encontrar para fazer o cron usar o ruby 1.9.3, mas eu não tenho sorte até agora.

Algum corpo me daria alguma sugestão ou ponteiro sobre como proceder em seguida? Obrigado pela sua ajuda.

    
por user222776 10.05.2013 / 20:25

1 resposta

0

o caminho padrão do cron é /usr/bin:/bin e o shell padrão é /bin/sh . Ele não lê arquivos de configuração como .bash_profile.

Você poderia adicionar . ~/.rvm/scripts/rvm ao script?

Ou bash -lc iniciaria um shell de login que lê arquivos de configuração como .bash_profile.

* * * * * bash -lc '~/test.sh > ~/out.log 2> ~/err.log'
    
por 11.05.2013 / 17:16

Tags