white_wolf_17
@white_wolf_17

Как запускать rake по cron?

Нужно запускать задачу по крону. У меня написан скрипт

cd /путь_к_проекту/
bundle exec rake name:action

Если просто выполняю sh update.sh - о все нормально. А если пишу ту же команду в крон - ничего не происходит
  • Вопрос задан
  • 423 просмотра
Решения вопроса 1
insiki
@insiki
broken pipe
Вероятно, потому что у вас не срабатывает cd.
stackoverflow.com/questions/255414/why-doesnt-cd-w...
stackoverflow.com/questions/874452/change-current-...
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
@vsuhachev
проблема в том что у крона свое окружение, например в PATH нет пути ни к ruby ни к bundle, shell другой и т.п. Правильный путь - написать свой скрипт так чтобы все умолчания были явными - полные пути, инициальзация переменных окружения и т.д.

Более простой путь - попытаться запустить ваш шелл с опцией логина и выполнить в нем нужную команду. Например у меня на убунту работало так
sudo -u my_user /bin/bash -l -c 'bundle exec ...'
Не берусь судить о том насколько это "тру" - возможно знающие люди прокомментируют...
Ответ написан
Комментировать
etspring
@etspring
Начитанное быдло
Вообще например так
SHELL=/bin/sh
PATH=/home/deployer/.rbenv/bin:/home/deployer/.rbenv/bin:/home/deployer/.rbenv/bin:/home/deployer/.rbenv/bin:/home/deployer/.rbenv/bin:/home/deployer/.rbenv/shims:/home/deployer/.rbenv/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games
cd /home/deployer/scum_cleaner/current && RAILS_ENV=production bundle exec rake kill:all_gays


А вообще лучше воспользуйтесь rufus scheduler
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы