я запускаю эту команду на терминале
$ my_json_generator.rb | grep \"mtype\":164 | my_json_consumer.rb
json_generator создает объекты json. 1 на строку.
{"foo":7, "mtype":164, "bar":[1,2,3]}
Мне нужны только строки, содержащие mtype 164, и по соображениям производительности (и другим, выходящим за рамки этого вопроса) я хотел бы избежать разбора других строк json на объекты. Я понимаю, что могу сделать это в коде, но этого нужно избегать.
Итак, приведенная выше команда работает на терминале, но не в cron. Любые предложения приветствуются.
Спасибо!
Что значит не работает? Попробуйте удалить обратную косую черту из записи Crontab. Это могло быть двойное спасение.
Я думаю у тебя есть $PATH
проблема.
Попробуйте поставить полную PATH
исполняемых файлов или добавьте в начало вашего crontab
:
SHELL=/bin/bash
PATH=/bin:/usr/bin:/usr/local/bin
MAIL=me@domain.tld
* * * * * my_json_generator.rb | grep \"mtype\":164 | my_json_consumer.rb