Ruby on Rails 애플리케이션이 있고 rake 작업을 위해 crontab을 예약해야 합니다.
*/5 * * * * RAILS_ENV=production /usr/local/bin/rake -f /usr/local/www/mysite-web-production/current/Rakefile my_site:export_products >> /var/log/export_feed.log 3>&1
그러나 작동하지 않으며(수동으로 수행하면 작동하지만 crontab으로는 작동하지 않음) /usr/bin/env: ruby: No such file or directory
RVM을 사용하지 않는다는 메시지가 표시됩니다. 저는 Linux에서 Ruby 1.9.3과 Rails 3을 사용하고 있습니다.
답변1
$PATH
Ruby가 어디에 있든 존재 하지 않습니다 cron
. 를 ruby
실행하여 실제 위치를 찾으세요 type -a
. 그런 다음 $PATH
crontab의 환경 변수 에 경로를 추가합니다 .
type -a
예를 들어 표시된 경로가 다음 ruby
과 같다 면 /usr/local/bin/ruby
(그리고 경로로 판단하면 rake
아마도 그럴 것임) crontab은 다음과 같아야 합니다.
PATH=$PATH:/usr/local/bin
*/5 * * * * RAILS_ENV=production /usr/local/bin/rake -f /usr/local/www/mysite-web-production/current/Rakefile my_site:export_products >> /var/log/export_feed.log 3>&1
아니면:
*/5 * * * * RAILS_ENV=production PATH=$PATH:/usr/local/bin /usr/local/bin/rake -f /usr/local/www/mysite-web-production/current/Rakefile my_site:export_products >> /var/log/export_feed.log 3>&1
둘 다 작동해야합니다.