Screatch
@Screatch
Ruby On Rails front-end developer

Почему Bundle exec rake не отрабатывает в Cron?

Есть сервер на Ubuntu 13.10.

Есть проект на Ruby On Rails и несколькими rake задачами, которые отрабатывают на cron каждые 3 минуты.
Есть gem Whenever, который синтаксис вроде
every 3.minutes do
  rake 'update_balance'
end
Преобразовывает в строку в файле Crontab
0,3,6,9,12,15,18,21,24,27,30,33,36,39,42,45,48,51,54,57 * * * * /bin/bash -l -c 'cd /var/fruby/releases/20140513091404 && RAILS_ENV=production bundle exec rake update_balance --silent'
Так вот, скрипт этот, будучи запущенный вручную (с той же самой строкой что и в Cron), замечательно отрабатывает и делает определённые записи в базу.

Будучи поставленный в Cron, скрипт оставляет следующие записи в файле /var/log/syslog
May 13 13:06:01 sandbox2 CRON[9656]: (root) CMD (/bin/bash -l -c 'cd /var/fruby/releases/20140513091404 && RAILS_ENV=production bundle exec rake update_balance --silent')
May 13 13:06:01 sandbox2 CRON[9655]: (CRON) info (No MTA installed, discarding output)
May 13 13:09:01 sandbox2 CRON[9789]: (root) CMD (/bin/bash -l -c 'cd /var/fruby/releases/20140513091404 && RAILS_ENV=production bundle exec rake update_balance --silent')
НО, скрипт при этом совершенно точно не отрабатывает, т.е. я не вижу никаких результатов его выполнения а при попытке дописать к Cron задаче &>/tmp/mycommand.log, файл просто каждый раз очищается при каждом следующем запуске cron задачи, хотя будучи запущенный вручную, вывод будет примерно такой:
2014-05-13T11:11:25Z 10292 TID-2asbo INFO: Sidekiq client with redis options {:url=>"redis://127.0.0.1"}
Sent task for updating 2 users
Буду благодарен за любые наводки, куда копать и что искать?

Спасибо.
  • Вопрос задан
  • 3029 просмотров
Решения вопроса 1
Screatch
@Screatch Автор вопроса
Ruby On Rails front-end developer
Этот вопрос на Stackoverflow помог мне решить мою проблему:
stackoverflow.com/questions/2388087/how-to-get-cro...
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
pomeo
@pomeo
ruby как установлен, rvm?
Ответ написан
@IgorVol
Запуск по крону происходит от пользователя cron user
В его окружении PATH скорее всего нет rvm, ruby, bundle или т.п. Поэтому скрипт не отрабатывает
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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