guanghu-ice-heart/server-tools/zero-sense-team-node/health-check.sh

13 lines
861 B
Shell
Executable file

#!/usr/bin/env bash
set -euo pipefail
node_id=$(jq -r '.node_id' /etc/guanghu/node.json)
domain_id=$(jq -r '.domain_id' /etc/guanghu/node.json)
forgejo_state=$(systemctl is-active forgejo.service)
timer_state=$(systemctl is-active guanghu-forgejo-backup.timer)
version=$(forgejo --version | head -1)
http_code=$(curl -sS -o /dev/null -w '%{http_code}' http://127.0.0.1:3000/api/healthz)
listeners=$(ss -lntH '( sport = :3000 )' | awk '{print $4}')
[[ $listeners == 127.0.0.1:3000 ]]
jq -n --arg node_id "$node_id" --arg domain_id "$domain_id" --arg forgejo "$forgejo_state" \
--arg backup_timer "$timer_state" --arg version "$version" --arg http_code "$http_code" --arg bind "$listeners" \
'{ok:true,node_id:$node_id,domain_id:$domain_id,forgejo:$forgejo,backup_timer:$backup_timer,version:$version,health_http:$http_code,bind:$bind,public_exposure:false}'