2015-08-21 3 views
0

Я запускаю приложение Ruby, и каждую минуту скрипт должен запускаться, чтобы он отправлял электронные письма различным пользователям.Rake: команда не найдена при запуске задания cron

Сценарий работает, когда я запускаю его вручную, однако при запуске cron он выходит из строя с ошибкой «Rake: command not found».

Я довольно новичок во всем этом, и я знаю, что это будет что-то довольно простое, но я не могу найти что-либо в Интернете, которое касается - есть некоторые, которые близки, но не совсем подходят.

Это мой сценарий:

#!/bin/bash 
# USAGE - runs rake script on [email protected] for email issue reply facility  in redmine 
cd /usr/local/src/redmine-3.0.3 
rake -f Rakefile redmine:email:receive_imap RAILS_ENV="production"host=imap.gmail.com port=993 ssl=1 [email protected] password=<my_password> --trace 
folder=Inbox 
allow_override=true 

И выход из почты при выполнении задания:

Date: Fri, 21 Aug 2015 08:23:01 GMT 
Message-Id: <[email protected]> 
X-Authentication-Warning: ip-172-xx-xx-xxx: ec2-user set sender to root using -f 
From: [email protected] (Cron Daemon) 
To: [email protected] 
Subject: Cron <[email protected]> sh /usr/local/bin/redmine-email.sh 
Content-Type: text/plain; charset=UTF-8 
Auto-Submitted: auto-generated 
X-Cron-Env: <LANG=en_US.UTF-8> 
X-Cron-Env: <SHELL=/bin/sh> 
X-Cron-Env: <HOME=/home/ec2-user> 
X-Cron-Env: <PATH=/usr/bin:/bin> 
X-Cron-Env: <LOGNAME=ec2-user> 
X-Cron-Env: <USER=ec2-user> 

/usr/local/bin/redmine-email.sh: line 5: rake: command not found 

Мой кронтаб:

*/1 * * * * sh /usr/local/bin/redmine-email.sh 

Так что я понятия не имею, что происходит - я запускаю другие задания cron на этой машине без каких-либо проблем. Поблагодарили бы за любую помощь, спасибо.

+0

Вы попробовали запустить команду как 'bundle exec rake ...' – tekina

+0

Просто попробовали это сейчас - все равно получите пакет: команда не найдена – shaneoh

+0

, если вы используете 'rvm' или другой менеджер версий ruby, вам придется использовать соответствующая версия ruby, иначе она будет использоваться по умолчанию для рубиновой версии. –

ответ

1

Проблема здесь заключалась в том, что cron не имел информации PATH. Добавлено это, и работа выполняется без проблем. В crontab и voila была введена следующая информация.

PATH="/home/ec2-user/.rvm/gems/ruby-1.9.3-p551/bin:/home/ec2-user/.rvm/gems/[email protected]/bin:/home/ec2-user/.rvm/rubies/ruby-1.9.3-p551/bin:/home/ec2-user/.rvm/gems/ruby-1.9.3-p551/bin:/home/ec2-user/.rvm/gems/[email protected]/bin:/home/ec2-user/.rvm/rubies/ruby-1.9.3-p551/bin:/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin:/opt/aws/bin:/home/ec2-user/.rvm/bin:/home/ec2-user/bin" 
GEM_HOME='/home/ec2-user/.rvm/gems/ruby-1.9.3-p551' 
GEM_PATH='/home/ec2-user/.rvm/gems/ruby-1.9.3-p551:/home/ec2-user/.rvm/gems/[email protected]' 
MY_RUBY_HOME='/home/ec2-user/.rvm/rubies/ruby-1.9.3-p551' 
IRBRC='/home/ec2-user/.rvm/rubies/ruby-1.9.3-p551/.irbrc' 
RUBY_VERSION='ruby-1.9.3-p551' 

Спасибо за вашу помощь, все извиняются, если моя терминология не годится, но я все еще участвую.

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