Во-первых: require "json"
, вероятно, сбой, потому что не загружены рубины Вероятно, это можно исправить, поместив require 'rubygems'
вверху или добавив RUBYOPT=rubygems
в начало командной строки задания cron или в среду cron (обычно вы можете установить переменные окружения в crontab).
Чтобы ответить на вашу ENV
проблему отладки: возможно ли, что puts ENV
не работает, потому что stdout перенаправлен куда-то, о чем вы не знаете во время работы cron (он определенно не может перейти на ваш терминал)? Вместо этого вы можете попробовать следующее:
File.open('/tmp/debug_env', 'w') do |f|
f.puts ENV.to_hash.inspect
end
А затем посмотрите в /tmp/debug_env
, чтобы увидеть, что там. Переменные среды, на которые стоит обратить особое внимание: $USER
, $GEM_HOME
, $GEM_PATH
, $RUBYOPT
.