/bin/sh: 1: rake: not found
Added by Jasen Burkett almost 10 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=user@domain.com 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 5 years 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=user@domain.com password=notshowingthis > /var/log/errlogs.log 2>&1
Должно работать !
После замените период запуска cron задания на более долгий (например, */10 * * * *), т.к. в примере стоит 1 минута - это очень часто для проверки почты.
RE: /bin/sh: 1: rake: not found - Added by Tuan Phan Anh about 5 years ago
- * * * * /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'