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 [email protected]. To unsubscribe from this group, send email to [email protected]. For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en.

