Делюсь с вами информацией об очень полезной консольной утилите JC. С её помощью можно поток данных из стандартных команд Linux конвертировать в json. Покажу сразу на простом примере:
# free | jc --free
Вывод имеет смысл сразу через jq пропустить, чтобы было удобнее смотреть.
# free | jc --free | jq[ { "type": "Mem", "total": 1014640, "used": 197868, "free": 276000, "shared": 31280, "buff_cache": 540772, "available": 634004 }, { "type": "Swap", "total": 999996, "used": 175740, "free": 824256 }]
JC поддерживает большое количество утилит. Это делает её удобной для настройки мониторинга. Например, очень просто сделать мониторинг бэкапов в виде файлов.
# ls -lh | jc --ls | jq
Отправляем вывод на Zabbix Server и парсим с помощью JSONPath нужные данные. Например, имя файла, дату и размер. А дальше делаем нужные триггеры. Я раньше всё это на баше через grep, awk, sed и т.д. делал. Но тут намного удобнее.
В репозитории приведён полный список утилит, которые поддерживает jc. Написана программа на python, ставится через pip:
# pip3 install jc
С помощью jc можно парсить вывод STDOUT у Ansible. В статье приведён простой и наглядный пример.
Утилита по нынешним временам очень актуальна и востребована. Рекомендую обратить внимание и сохранить информацию, если прямо сейчас не нужно.
⇨ Исходники / Много примеров
#json