Files
userbase/deploy/probe_nacos.sh
T

20 lines
1.1 KiB
Bash

#!/bin/sh
# 探测内网 nacos:8848 是否可达、public 空间下 userbase.yaml 是否存在、是否需要鉴权
echo "== resolve nacos =="
getent hosts nacos || echo "cannot resolve nacos"
echo "== fetch userbase.yaml (public, no auth) =="
curl -s -m 8 -o /tmp/nc.txt -w "http=%{http_code}\n" "http://nacos:8848/nacos/v1/cs/configs?dataId=userbase.yaml&group=USERBASE&tenant="
echo "--- body (first 200 chars) ---"
head -c 200 /tmp/nc.txt; echo
if grep -q "unknown user" /tmp/nc.txt || grep -q "403" /tmp/nc.txt || [ "$(head -c 1 /tmp/nc.txt)" = "" ]; then
echo "== needs auth, try login nacos/nacos =="
TOKEN=$(curl -s -m 8 -X POST "http://nacos:8848/nacos/v1/auth/login?username=nacos&password=nacos" | sed -n 's/.*"accessToken":"\([^"]*\)".*/\1/p')
echo "token_len=${#TOKEN}"
if [ -n "$TOKEN" ]; then
curl -s -m 8 -o /tmp/nc2.txt -w "http=%{http_code}\n" "http://nacos:8848/nacos/v1/cs/configs?dataId=userbase.yaml&group=USERBASE&tenant=&accessToken=$TOKEN"
echo "--- authed body (first 200 chars) ---"
head -c 200 /tmp/nc2.txt; echo
fi
fi
echo "== done =="