作为cron作业失败的Ruby脚本

时间:2015-09-19 03:37:04

标签: ruby linux bash shell cron

我有一个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'

2 个答案:

答案 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