Как настроить cron для ruby скрипта?

Здравствуйте

На текущий момент возникла необходимость поставить скрипт ruby на периодическое выполнение
Слышал о планировщике cron

Сейчас работаю от root,
Переменная PATH
/usr/local/rvm/gems/ruby-2.0.0-p353/bin:/usr/local/rvm/gems/ruby-2.0.0-p353@global/bin:/usr/local/rvm/rubies/ruby-2.0.0-p353/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/lib/postgresql/9.3/bin:/usr/local/rvm/bin:

Ruby установлен через RVM
В файле ~/.bashprofile
source /etc/profile.d/rvm.sh

Добавляю в crontab -e строку
* * * * * ruby /var/www/nw/x.rb

Получаю в /var/www/syslog
(root) CMD (ruby /var/www/nw/x.rb)
Логи cron не настроены - следующая строка
(CRON) info (No MTA installed, discarding output)

Действия скрипта не выполняются

Если в консоли писать ruby x.rb - скрипт работает, но не su root ruby x.rb - пишет "ruby: no such file or directory"

Как решить данную задачу, что и куда следует добавить?
  • Вопрос задан
  • 3841 просмотр
Пригласить эксперта
Ответы на вопрос 3
Freika
@Freika
Senior Ruby on Rails developer
А гем Whenever вашу задачу не решит? Очень удобная, как по мне, вещь.
Ответ написан
Комментировать
FanKiLL
@FanKiLL
Нужен полный путь до интерпретатора, к примеру
* * * * * /home/user/.rbenv/versions/2.1.0/bin/ruby /home/user/scripts/shoot_my_leg.rb


в вашем случае вместо .rbenv нужно поставить интерпретатор из .rvm папки
Вот посмотрите Using RVM with Cron
Ответ написан
Комментировать
foxmuldercp
@foxmuldercp
Системный администратор, программист, фотограф
в вашем варианте идет интерпретатор и потом команда
а надо время, потом пользователь (если системный /etc/crontab) потом полный путь к интерпретатору и аргументом к нему полный путь к нужному скрипту.
еще проверить права доступа, чтобы скрипт мог выполняться.
и настройте mta, хоть nullmailer, чтобы логи работы системы отправлялись в почту.

man cron:
# m h dom mon dow user command
0 23 * * * root /bin/bash /full/path/to/my/script.sh
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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