Сценарий Bash для монитора ответа API JSON

Предполагая, что OP подтверждает поведение, о котором я упоминал в комментариях, этот скрипт должен работать:

awk '
     FNR != 1 { sub("-", "", $1); dates[$1] = dates[$1] FS $2 }
     END {
         for(i in ARGV) h = h FS "Query"i; sub(" Query0", "Date", h); print h
         for(d in dates) print d dates[d]
     }
' $(cat "list.txt")

Я подумал, что будет проще перечислить все имена входных файлов в отдельный файл "list.txt", по одному файлу в строке.

0
28.03.2020, 17:14
1 ответ

В ответе JSON нет ключа .Disconnected.

Чтобы проверить клавишу .mongodbна наличие строки connected, вы можете сделать это:

#!/bin/sh

if wget --timeout 5 -O - -q -t 1 https://www.example.com/healthz |
   jq --exit-status '.mongodb == "connected"' >/dev/null
then
    # code for the case when MongoDB is connected
else
    # code for the case when MongoDB is *not* connected
fi

Это передает ответ напрямую из wgetв jqвместо того, чтобы идти окольным путем и сохранять его в промежуточной переменной.

Использование--exit-status(или-ejqприводит к выходу утилиты со статусом успешного выхода (ноль ), если она не выводит nilили false. Выражение, которое мы даем для jq, выведет true, если ключ .mongodbимеет значение connected.

Затем мы используем статус выхода jqв операторе if, чтобы выбрать переход.

0
19.03.2021, 02:31

Теги

Похожие вопросы