Назад | Перейти на главную страницу

двойная кавычка grep в cron

я запускаю эту команду на терминале

$ 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