2012-03-13 3 views
1

Я одна рейка задача, которую я хочу, чтобы выполнить один раз в день: в производстве установлен РВМКак настроить Всякий раз, когда драгоценный камень в производстве (РВМ)

в schedule.rb я есть

set :output, "/home/username/data/public_html/log/cron_log.log" 
every 24.hours do 
    rake "fetch:smth" 
end 

кронтаб -l показывает мне:

MAILTO="[email protected]" 
PATH="/usr/local/rvm/rubies/ruby-1.9.3-p125/bin/ruby " 
@daily cd /home/username/data/www/nameofsite.com && RAILS_ENV=production bundle exec rake fetch:smth 

действительно, я немного смущен, сог ранее я не имел опыта работы с хрон, так плз Помогите.

EDIT # 1

Я запускать РВМ окр - путь [email protected] и он дал мне:

PATH="/usr/local/rvm/gems/ruby-1.9.3-p125/bin:/usr/local/rvm/gems/[email protected]/bin:/usr/local/rvm/rubies/ruby-1.9.3-p125/bin:/usr/local/rvm/bin:$PATH" 

, а затем я

MAILTO="[email protected]" 
PATH="/usr/local/rvm/gems/ruby-1.9.3-p125/bin:/usr/local/rvm/gems/[email protected]/bin:/usr/local/rvm/rubies/ruby-1.9.3-p125/bin:/usr/local/rvm/bin:$PATH" 
@daily RAILS_ENV=production rake rate:fetch 

и когда я запускаю выполнение, из ISPmanager он дал мне: Выход с возвратом c ode = 1 link ниже говорит, что если ошибка выхода равна 1, то уже есть файл /var/run/cron.pid. и это правда, но у меня нет прав root

ответ

1

Вам не нужно schedule.rb, если вы вызываете задачу из cron. Это обрабатывается записью @daily в crontab. Просто установите имя файла журнала как переменную среды и обратитесь к этому вопросу. Вероятно, вам также понадобится больше в вашем $PATH, чем просто путь к двоичной версии ruby, иначе bundle не будет найден. Пока вы даете путь рубину, вы на самом деле не выбираете его для RVM, чтобы знать, что вы имеете в виду, поэтому он не сможет найти нужный гемсет. RVM предоставляет обертки, которые делают правильную вещь для такого рода задач - замените bundle exec на /usr/local/rvm/wrappers/ruby-1.9.3-p125 -S bundle exec, и он должен работать.

Надеюсь, что дает вам несколько идей. Там больше here.

UPDATE # 1

С Edit # 1, вы исправили одну проблему и создали другую. Вам все равно нужно указать cd в каталог приложения, иначе рейк не найдет Rakefile.

+0

@SaidKaldybaev это вводит в заблуждение! Othe люди (такой smyself) могут найти ту же проблему и думаю, что этот ответ решил вашу проблему! –

Смежные вопросы