I have a rails rake task which runs just fine. I want this task to be run periodically by crontab so I added it to crontab as follows : 0,30,0 * * * * cd /var/www/html/myapp && RAILS_ENV=production /usr/local/bin/rake myraketask --trace >> /var/www/html/myapp/log/cron_log.log 2>&1 In cron_log.log I''m seeing the following error: rake aborted! invalid byte sequence in US-ASCII /var/www/html/metajorn/config/boot.rb:98:in `parse_gem_version'' /var/www/html/metajorn/config/boot.rb:80:in `gem_version'' /var/www/html/metajorn/config/boot.rb:59:in `load_rails_gem'' /var/www/html/metajorn/config/boot.rb:54:in `load_initializer'' /var/www/html/metajorn/config/boot.rb:38:in `run'' /var/www/html/metajorn/config/boot.rb:11:in `boot!'' /var/www/html/metajorn/config/boot.rb:110:in `<top (required)>'' /var/www/html/metajorn/Rakefile:4:in `require'' /var/www/html/metajorn/Rakefile:4:in `<top (required)>'' /usr/local/lib/ruby/gems/1.9.1/gems/rake-0.8.7/lib/rake.rb:2383:in `load'' /usr/local/lib/ruby/gems/1.9.1/gems/rake-0.8.7/lib/rake.rb:2383:in `raw_load_rakefile'' /usr/local/lib/ruby/gems/1.9.1/gems/rake-0.8.7/lib/rake.rb:2017:in `block in load_rakefile'' /usr/local/lib/ruby/gems/1.9.1/gems/rake-0.8.7/lib/rake.rb:2068:in `standard_exception_handling'' /usr/local/lib/ruby/gems/1.9.1/gems/rake-0.8.7/lib/rake.rb:2016:in `load_rakefile'' /usr/local/lib/ruby/gems/1.9.1/gems/rake-0.8.7/lib/rake.rb:2000:in `block in run'' /usr/local/lib/ruby/gems/1.9.1/gems/rake-0.8.7/lib/rake.rb:2068:in `standard_exception_handling'' /usr/local/lib/ruby/gems/1.9.1/gems/rake-0.8.7/lib/rake.rb:1998:in `run'' /usr/local/bin/rake:31:in `<main>'' It is noteworthy that the task is working fine if I run it manually. Thanks, M -- Posted via http://www.ruby-forum.com/. -- You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk+unsubscribe-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en.
On 13 July 2010 15:50, med addame <lists-fsXkhYbjdPsEEoCn2XhGlw@public.gmane.org> wrote:> I have a rails rake task which runs just fine. I want this task to be > run periodically by crontab so I added it to crontab as follows : 0,30,0 > * * * * cd /var/www/html/myapp && RAILS_ENV=production > /usr/local/bin/rake myraketask --trace >> > /var/www/html/myapp/log/cron_log.log 2>&1If you type exactly that command (from the cd obviously) into a terminal, does it work? Do you have permission to write into the log directory? Though can''t see why that would give that error.> > In cron_log.log I''m seeing the following error: > > rake aborted! > invalid byte sequence in US-ASCII > /var/www/html/metajorn/config/boot.rb:98:in `parse_gem_version''Are you sure this is as a result of the command above? It seems to be in the wrong directory. What is in line 98 of boot.rb? Colin> /var/www/html/metajorn/config/boot.rb:80:in `gem_version'' > /var/www/html/metajorn/config/boot.rb:59:in `load_rails_gem'' > /var/www/html/metajorn/config/boot.rb:54:in `load_initializer'' > /var/www/html/metajorn/config/boot.rb:38:in `run'' > /var/www/html/metajorn/config/boot.rb:11:in `boot!'' > /var/www/html/metajorn/config/boot.rb:110:in `<top (required)>'' > /var/www/html/metajorn/Rakefile:4:in `require'' > /var/www/html/metajorn/Rakefile:4:in `<top (required)>'' > /usr/local/lib/ruby/gems/1.9.1/gems/rake-0.8.7/lib/rake.rb:2383:in > `load'' > /usr/local/lib/ruby/gems/1.9.1/gems/rake-0.8.7/lib/rake.rb:2383:in > `raw_load_rakefile'' > /usr/local/lib/ruby/gems/1.9.1/gems/rake-0.8.7/lib/rake.rb:2017:in > `block in load_rakefile'' > /usr/local/lib/ruby/gems/1.9.1/gems/rake-0.8.7/lib/rake.rb:2068:in > `standard_exception_handling'' > /usr/local/lib/ruby/gems/1.9.1/gems/rake-0.8.7/lib/rake.rb:2016:in > `load_rakefile'' > /usr/local/lib/ruby/gems/1.9.1/gems/rake-0.8.7/lib/rake.rb:2000:in > `block in run'' > /usr/local/lib/ruby/gems/1.9.1/gems/rake-0.8.7/lib/rake.rb:2068:in > `standard_exception_handling'' > /usr/local/lib/ruby/gems/1.9.1/gems/rake-0.8.7/lib/rake.rb:1998:in `run'' > /usr/local/bin/rake:31:in `<main>'' > It is noteworthy that the task is working fine if I run it manually. > > Thanks, > > M-- You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk+unsubscribe-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en.
the crontab entry was : * * * * cd /var/www/html/metajorn && RAILS_ENV=production /usr/local/bin/rake myraketask --trace >> /var/www/html/metajorn/log/cron_log.log 2>&1 I changed the name to myapp just in the post ... but omitted to change it in the error trace. So, yes when run manually it works just fine and file permissions are set to 777. I think it is related to some environment information that are not loaded by cron ... but I haven''t find yet what is exactly missing. Colin Law wrote:> On 13 July 2010 15:50, med addame <lists-fsXkhYbjdPsEEoCn2XhGlw@public.gmane.org> wrote: >> I have a rails rake task which runs just fine. I want this task to be >> run periodically by crontab so I added it to crontab as follows : 0,30,0 >> * * * * cd /var/www/html/myapp && RAILS_ENV=production >> /usr/local/bin/rake myraketask --trace >> >> /var/www/html/myapp/log/cron_log.log 2>&1 > > If you type exactly that command (from the cd obviously) into a > terminal, does it work? Do you have permission to write into the log > directory? Though can''t see why that would give that error. > >> >> In cron_log.log I''m seeing the following error: >> >> rake aborted! >> invalid byte sequence in US-ASCII >> /var/www/html/metajorn/config/boot.rb:98:in `parse_gem_version'' > > Are you sure this is as a result of the command above? It seems to be > in the wrong directory. > > What is in line 98 of boot.rb? > > Colin-- Posted via http://www.ruby-forum.com/. -- You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk+unsubscribe-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en.
I finally solved the problem: cron uses environment variables that may be different from the user environment variables... it was the case for me. my crond service uses us-ascii encoding while my rake task uses utf-8. To fix the issue, I just had to change the encoding of crond by adding the following lines to my crond file (in my centos5 it is locaed in: /var/spool/cron/root ) SHELL=/bin/bash LANG=en_US.UTF-8 LANGUAGE=en LC_CTYPE=en_US.UTF-8 LC_NUMERIC="en_US.UTF-8" LC_TIME="en_US.UTF-8" LC_COLLATE="en_US.UTF-8" LC_MONETARY="en_US.UTF-8" LC_MESSAGES="en_US.UTF-8" LC_PAPER="en_US.UTF-8" LC_NAME="en_US.UTF-8" LC_ADDRESS="en_US.UTF-8" LC_TELEPHONE="en_US.UTF-8" LC_MEASUREMENT="en_US.UTF-8" LC_IDENTIFICATION="en_US.UTF-8" Than, restarted crond : service crond restart M. med addame wrote:> I have a rails rake task which runs just fine. I want this task to be > run periodically by crontab so I added it to crontab as follows : 0,30,0 > * * * * cd /var/www/html/myapp && RAILS_ENV=production > /usr/local/bin/rake myraketask --trace >> > /var/www/html/myapp/log/cron_log.log 2>&1 > > In cron_log.log I''m seeing the following error: > > rake aborted! > invalid byte sequence in US-ASCII > /var/www/html/metajorn/config/boot.rb:98:in `parse_gem_version'' > /var/www/html/metajorn/config/boot.rb:80:in `gem_version'' > /var/www/html/metajorn/config/boot.rb:59:in `load_rails_gem'' > /var/www/html/metajorn/config/boot.rb:54:in `load_initializer'' > /var/www/html/metajorn/config/boot.rb:38:in `run'' > /var/www/html/metajorn/config/boot.rb:11:in `boot!'' > /var/www/html/metajorn/config/boot.rb:110:in `<top (required)>'' > /var/www/html/metajorn/Rakefile:4:in `require'' > /var/www/html/metajorn/Rakefile:4:in `<top (required)>'' > /usr/local/lib/ruby/gems/1.9.1/gems/rake-0.8.7/lib/rake.rb:2383:in > `load'' > /usr/local/lib/ruby/gems/1.9.1/gems/rake-0.8.7/lib/rake.rb:2383:in > `raw_load_rakefile'' > /usr/local/lib/ruby/gems/1.9.1/gems/rake-0.8.7/lib/rake.rb:2017:in > `block in load_rakefile'' > /usr/local/lib/ruby/gems/1.9.1/gems/rake-0.8.7/lib/rake.rb:2068:in > `standard_exception_handling'' > /usr/local/lib/ruby/gems/1.9.1/gems/rake-0.8.7/lib/rake.rb:2016:in > `load_rakefile'' > /usr/local/lib/ruby/gems/1.9.1/gems/rake-0.8.7/lib/rake.rb:2000:in > `block in run'' > /usr/local/lib/ruby/gems/1.9.1/gems/rake-0.8.7/lib/rake.rb:2068:in > `standard_exception_handling'' > /usr/local/lib/ruby/gems/1.9.1/gems/rake-0.8.7/lib/rake.rb:1998:in `run'' > /usr/local/bin/rake:31:in `<main>'' > It is noteworthy that the task is working fine if I run it manually. > > Thanks, > > M-- Posted via http://www.ruby-forum.com/. -- You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk+unsubscribe-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en.