我有一个ruby脚本,我想作为cron job运行。当我在linux机器上运行命令提示符时,它运行得非常好。但是当我使用cron作业运行相同的脚本时,它失败了。
我通过字符串编码得到以下错误。不知道为什么它只是在我作为一个cron工作运行时抱怨。我还在crontab中将我的shell设置为/ bin / bash,这与我的命令提示符相同。
我得到的错误如下。这发生在拆分命令上。
split.encode('utf-8).split(some_str)
下面是唯一的ruby特定错误,其余是应用程序堆栈,所以我省略了它。(根据用户请求添加它)
分析_logs中的encode': "\xE2" on US-ASCII (Encoding::InvalidByteSequenceError) from ruby_file.rb:172:in
块(2级)中的来自ruby_file.rb:170:在analyze_logs中的
each' from ruby_file.rb:170:in
块中 来自ruby_file.rb:169:在open' from ruby_file.rb:169:in
analyze_logs'中 来自ruby_file.rb:416:run' from ruby_file.rb:479:in
'
答案 0 :(得分:1)
使用whenever gem,它将处理与cronjobs相关的所有问题
every 6.minutes do
rake "your_app:rake_task_name"
end
答案 1 :(得分:0)
我认为在cron下运行时的语言环境是不同的,并导致字符编码问题。
请参阅:http://chrisneedham.com/posts/2014/06/21/ruby-cron-utf8.html