Я пытаюсь настроить задачу cron, которая запускает задачу rake. Я использую драгоценный камень всякий раз, когда. Вот конфигурация в config / schedule.rb
every 1.minutes do
bundle exec rake "test:pick_participant"
end
crontab настроен правильно, когда:
* * * * * /bin/bash -l -c 'cd /home/jsmith/webapp/releases/20111104200246 && RAILS_ENV=production bundle exec rake test:pick_participant --silent'
Однако Cron продолжает сообщать (по почте) об этой ошибке каждый раз при запуске задания:
From: root@SEQUOIA.local (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: <20111108002602.98F3E60227C@SEQUOIA.local>
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.
Команда, выданная Кроном, кажется правильной:
/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"?