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.

Reply via email to