Вопрос: Настройка Crontab для работы с огурцом


Я пытаюсь настроить crontab для работы с огурцом. До сих пор мне удалось заставить crontab выполнить команду ruby, но не команду огурца.

Это то, что у меня есть в кронтабе:

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

Если я это сделаю в test.sh, он отлично работает:

/ Абсолютный путь к рубину ~ / test.rb

Однако, если я это делаю в test.sh, это не удалось:

/ Абсолютный путь к огурцу ~ / test.feature

Это то, что он печатает в файле err.log:

нет такого файла для загрузки - capybara / cucumber (LoadError)

Однако, если я запустил test.sh (/ Absolute-path-to-oucumber ~ / test.feature) в терминале, это не проблема.


Итак, я думаю, что cron и терминал не используют одну и ту же версию ruby ​​(следовательно, проблему среды).

Когда я сделал $ ruby ​​-rpp -e 'pp ENV' в терминале, он дал мне следующее:

"_" => "/ Users / имя / .rvm / рубины / рубиново-1.9.3-p392 / бен / рубин"

Когда я сделал ту же команду в cron, она дала мне это в файле журнала:

"_" => "/ USR / бен / рубин"

Таким образом, похоже, что cron использует систему ruby ​​(1.8.7), в то время как терминал использует пользователя ruby ​​(1.9.3). Я пробовал всевозможные вещи, которые мог найти, чтобы заставить cron использовать ruby ​​1.9.3, но мне пока не повезло.

Может ли какой-нибудь орган дать мне какой-либо намек или указатель относительно того, как действовать дальше? Спасибо за помощь.


0
2018-05-10 18:25


Источник




Ответы:


По умолчанию путь по умолчанию cron /usr/bin:/bin и оболочка по умолчанию /bin/sh, Он не читает никаких файлов конфигурации, таких как .bash_profile.

Не могли бы вы просто добавить . ~/.rvm/scripts/rvm к сценарию?

Или bash -lc запускает оболочку входа, которая считывает файлы конфигурации, такие как .bash_profile.

* * * * * bash -lc '~/test.sh > ~/out.log 2> ~/err.log'

0
2018-05-11 15:16