Я пытаюсь настроить задание cron, выполняющее задачу rake. Я использую драгоценный камень всякий раз, когда. Вот конфигурация в config/schedule.rb
every 1.minutes do
bundle exec rake "test:pick_participant"
end
Кронтаб настроен правильно, когда:
* * * * * /bin/bash -l -c 'cd /home/jsmith/webapp/releases/20111104200246 && RAILS_ENV=production bundle exec rake test:pick_participant --silent'
Однако Cron продолжает сообщать (по почте) об этой ошибке каждый раз при запуске задания:
From: [email protected] (Cron Daemon)
To: jsmith@SEQUOIA
Subject: Cron <jsmith@SEQUOIA> /bin/bash -l -c 'cd /home/jsmith/webapp/releases/20111104200246 && RAILS_ENV=production bundle exec rake test:pick_participant --silent'
Content-Type: text/plain; charset=ANSI_X3.4-1968
X-Cron-Env: <MAILTO=jsmith@SEQUOIA>
X-Cron-Env: <SHELL=/bin/sh>
X-Cron-Env: <HOME=/home/jsmith>
X-Cron-Env: <PATH=/usr/bin:/bin>
X-Cron-Env: <LOGNAME=jsmith>
Message-Id: <[email protected]>
Date: Mon, 7 Nov 2011 16:26:01 -0800 (PST)
expr: syntax error
Could not find rake-0.8.7 in any of the sources
Грабли, входящие в состав среды приложения, имеют версию 0.8.7.
Команда, выданная Cron, кажется правильной:
/bin/bash -l -c 'cd /home/jsmith/webapp/releases/2067320376 && RAILS_ENV=production bundle exec rake test:pick_participant --silent'
он вызывает bundle exec rake
вместо rake
напрямую.
Также, если я выполню ту же команду в командной строке внутри каталога приложения, задача rake запустится успешно:
jsmith@SEQUOIA:~/webapp/current$ /bin/bash -l -c 'cd /home/jsmith/webapp/releases/20111104200246 && RAILS_ENV=production bundle exec rake test:pick_participant --silent'
* picked participant: Mindy!
У кого-нибудь есть идеи, почему Cron выдает эту ошибку «не удалось найти rake-0.8.7»?