/bin/sh: 1: rake: not found

Added by Jasen Burkett over 4 years ago

After all of the other errors i have gone through, I finally have gotten through them, however, I am not able to figure out why I am getting this error when I run the command to pull in emails from the imap server....

*/1 * * * * rake -f /usr/share/redmine/Rakefile redmine:email:receive_imap RAILS_ENV=production host=host.hostname.com username= password=notshowingthis > /var/log/errlogs.log 2>&1

IF I run the above script direclty in the terminal ( with out the time, and with out the directory path ) via cd into the redmine directory, then of course running the script, it works... The email that sits in the email box waiting to be pulled into redmine, works.

When ran via cron, nothing happens, and i get the error that I listed eaerlier... /bin/sh: 1: rake: not found

Thank you in advance

Replies (2)

RE: /bin/sh: 1: rake: not found - Added by rob ot about 1 month ago

У меня была идентичная проблема.

В итоге причина была в том, что при запуске задания из cron системная перемеренная PATH имела очень мало значений.

Что надо сделать (в этом примере в ubuntu создан пользователь bitnami ! Для вашего случая пути будут отличаться !):
1. Проверить значение переменной при запуске задания из под обычного пользователя (где все корректно работает)

Ввести в консоли следующую строку :

env > ent_value.txt

В результате файл ent_value.txt будет иметь строку примерно следующего содержания ****
PATH=/home/bitnami/bin:/home/bitnami/.local/bin:/opt/bitnami/perl/bin:/opt/bitnami/git/bin:/opt/bitnami/sqlite/bin:/opt/bitnami/ruby/bin:/opt/bitnami/subversion/bin:/opt/bitnami/postgresql/bin:/opt/bitnami/php/bin:/opt/bitnami/mysql/bin:/opt/bitnami/letsencrypt/:/opt/bitnami/apache2/bin:/opt/bitnami/common/bin:/opt/bitnami/apps/redmine/htdocs:/opt/bitnami/perl/bin:/opt/bitnami/git/bin:/opt/bitnami/sqlite/bin:/opt/bitnami/ruby/bin:/opt/bitnami/subversion/bin:/opt/bitnami/postgresql/bin:/opt/bitnami/php/bin:/opt/bitnami/mysql/bin:/opt/bitnami/letsencrypt/:/opt/bitnami/apache2/bin:/opt/bitnami/common/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin


2. Создать задание cron (команда crontab -e)

*/1 * * * * sh checkmail.sh

Создать файл /home/bitnami/checkmail.sh

Вставить в этот файл текст :

env > ent_value_cron.txt

В результате файл ent_value_cron.txt будет иметь строку примерно следующего содержания :

PATH=/home/bitnami/bin

Если это так, то это и есть причина проблемы - переменная PATH имеет очень маленькое содержание.

3. Решение проблемы

Созданный в пункте #2 файл checkmail.sh отредактируйте следующим образом :

PATH=/home/bitnami/bin:/home/bitnami/.local/bin:/opt/bitnami/perl/bin:/opt/bitnami/git/bin:/opt/bitnami/sqlite/bin:/opt/bitnami/ruby/bin:/opt/bitnami/subversion/bin:/opt/bitnami/postgresql/bin:/opt/bitnami/php/bin:/opt/bitnami/mysql/bin:/opt/bitnami/letsencrypt/:/opt/bitnami/apache2/bin:/opt/bitnami/common/bin:/opt/bitnami/apps/redmine/htdocs:/opt/bitnami/perl/bin:/opt/bitnami/git/bin:/opt/bitnami/sqlite/bin:/opt/bitnami/ruby/bin:/opt/bitnami/subversion/bin:/opt/bitnami/postgresql/bin:/opt/bitnami/php/bin:/opt/bitnami/mysql/bin:/opt/bitnami/letsencrypt/:/opt/bitnami/apache2/bin:/opt/bitnami/common/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin

rake -f /usr/share/redmine/Rakefile redmine:email:receive_imap RAILS_ENV=production host=host.hostname.com username= password=notshowingthis > /var/log/errlogs.log 2>&1

Должно работать !
После замените период запуска cron задания на более долгий (например, */10 * * * *), т.к. в примере стоит 1 минута - это очень часто для проверки почты.

RE: /bin/sh: 1: rake: not found - Added by Tuan Phan Anh about 1 month ago

You need to specify the rake folder. Below my cron:
  • * * * * /bin/bash -l -c 'cd /var/www/redmine && RAILS_ENV=production bundle exec rake redmine:email:receive_imap host=mail.server.com username=email@address password='\''#notshowingthis#'\'' port=993 ssl=SSL priority=normal project=customer-support tracker=support allow_override=all unknown_user=ignore no_permission_check=0 no_account_notice=0 move_on_success=Success move_on_failure=Failure --silent'

(1-2/2)