Назад | Перейти на главную страницу

Redmine: получение ревизий из задания cron

В Redmine 0.8.2 я хочу, чтобы информация о наборе изменений извлекалась автоматически, а не только тогда, когда кто-то просматривает вкладку «Репозиторий» соответствующего проекта. (Мне это нужно, чтобы сообщения фиксации, содержащие «refs # 42» или «closes # 42», вступили в силу как можно скорее.)

В crontab пользователя, от имени которого работает Redmine, есть следующая запись:

# m h  dom mon dow   command
*/5 * * * * ruby /var/www/redmine/script/runner Repository.fetch_changesets -e production

Раньше это работало до миграции сервера, и оно работает из командной строки (как пользователь Redmine), но не работает из cron. Я вижу в системном журнале, что команда запущена:

Feb 15 14:05:01 turing /USR/SBIN/CRON[24119]: (www-data) CMD (ruby /var/www/redmine/script/runner Repository.fetch_changesets -e production)

но база данных не обновляется. В журналах Redmine нет записей.

Я получил этот фрагмент из Redmine FAQ. Я вижу, что предложенная команда была изменена на:

rake -f /path/to/redmine/Rakefile redmine:fetch_changesets

но когда я запускаю его из командной строки, он не принимает конфигурацию и, таким образом, получает «отказано в доступе» при доступе к базе данных.

В какой переулок мне пойти? Что очевидного я забываю проверить?

Возможно, что ruby ​​находится в $ PATH пользователя Redmine, но не в cron. Попробуйте указать полный путь в записи crontab.

*/5 * * * * /path/to/ruby /var/www/redmine/script/runner Repository.fetch_changesets -e production

Кроме того, было бы полезно, если бы вы указали, какие сообщения об ошибках или записи журнала вы получаете, вместо того, чтобы просто сказать «не работает». Дополнительная информация поможет диагностировать проблему.