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
Буду благодарен за любые наводки, куда копать и что искать?

Спасибо.
  • Вопрос задан
  • 3028 просмотров
Решения вопроса 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 или т.п. Поэтому скрипт не отрабатывает
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы