次のヘルスチェックURLを監視したいと思います。 mongodbが切断されたら、警告を生成する必要があります。私はbashスクリプトを書いた。まだ動作していないようです。誰でも助けることができますか?ありがとう
健康診断はいつ行われますか?https://www.example.com/healthz結果は次の応答です。{"mongodb":"connected","redis":"connected"}
私のBashスクリプトは次のとおりです
#!/bin/bash
data=$(wget --timeout 5 -O - -q -t 1 https://www.example.com/healthz)
message=$(jq '.Disconnected' <<< "$data")
if [[ "$message" == '"Success"' ]] ; then
echo something
else
send email
ベストアンサー1
.Disconnected
JSONレスポンスにはキーはありません。
.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
(または-e
)を使用すると、ユーティリティは正常終了ステータス(0)で終了します。キーに値がある場合、私たちが提供した式が出力されます。jq
nil
false
jq
true
.mongodb
connected
jq
次に、ステートメントの終了状態を使用して、if
取る分岐を選択します。