TGViewer
ServerAdmin.ru ServerAdmin.ru @srv_admin · 32.6K subscribers
Post #2059 7.38K
​​Существует небольшая, но очень полезная утилита в Linux - jo. Она создаёт json вывод из поданных в неё данных. Покажу на условном примере:
# jo name=vova name=sasha name=dima
{"name":"vova","name":"sasha","name":"dima"}

А вот более прикладной пример, который может существенно упростить некоторые проверки в мониторинге. Формируем массив из файлов в директории:
# jo -p -a /backup/mysql/*
[
  "/backup/mysql/daily_mysql_2021-09-28_16h11m_Tuesday.sql.gz",
  "/backup/mysql/daily_mysql_2021-09-29_16h15m_Wednesday.sql.gz",
  "/backup/mysql/daily_mysql_2021-09-30_16h14m_Friday.sql.gz"
]

Можно этот же массив предварительно отсортировать по дате с помощью ls:
# ls -t | jo -p -a
Свежие файлы будут отображаться первыми. Потом с помощью JSONPath $[0] можно получить имя самого свежего файла или самого старого: $[-1:].

Ещё практический пример. Массив процессов на хосте сразу с исключением дублей:
# ps ax | awk '{print $5}' | jo -a -p | uniq
[
.....
  "/usr/bin/newrelic-infra-service",
  "/usr/bin/newrelic-infra",
  "/bin/sh",
  "/usr/sbin/mysqld",
  "/usr/sbin/sshd",
  "/usr/sbin/rpc.mountd",
  "/usr/sbin/rpc.idmapd",
......
]

В зависимости от ключей ps можно формировать нужный список с различными сортировками.

Можно сразу же сформировать данные для LLD правил автообнаружения Zabbix:
# jo -a {#DOMAIN}:ya.ru {#DOMAIN}:r0.ru
["{#DOMAIN}:ya.ru","{#DOMAIN}:r0.ru"]
Не надо заморачиваться на баше с проставлением запятых и скобок.

Утилита jo, наравне с jq, однозначно пригодится тем, кто много работает с JSON. К тому же живёт в базовых репах и без проблем устанавливается:
# apt install jo
# dnf install jo

Исходники - https://github.com/jpmens/jo

#bash #linux #zabbix #json
  • 👍 69
  • 👎 3
More from @srv_admin
  1. Oct 5, 2026🚀 Zabbix 8.0 на подходе. Запланируйте обучение команды уже сейчас В ближайшее время ожида…
  2. Oct 5, 2026В комментариях к недавней заметке про рабочее место один читатель в комментариях упомянул…
  3. Oct 2, 2026Мне Селектел прислали прикольный светильник, которым я сейчас стал постоянно пользоваться.…
  4. Oct 2, 202620 октября в 12:00 (мск) пройдёт бесплатный вебинар «Мониторинг событий безопасности в MWS…
  5. Oct 2, 2026На днях задачка небольшая была по сохранению команд пользователя в консоли. В ней ничего о…
  6. Oct 1, 2026Делал на днях некоторые покупки компьютерных комплектующих и периферии. От новых цен натур…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →