Add diag-connlogs.sh diagnostic script
This commit is contained in:
Executable
+60
@@ -0,0 +1,60 @@
|
||||
#!/bin/bash
|
||||
# 连接日志一键诊断脚本
|
||||
# 在生产服务器上以 root 执行: bash /opt/openvpn-manager/scripts/diag-connlogs.sh
|
||||
set -u
|
||||
echo "=========================================="
|
||||
echo " OpenVPN Manager 连接日志诊断"
|
||||
echo "=========================================="
|
||||
|
||||
echo ""
|
||||
echo "[1] 服务运行状态:"
|
||||
ps -ef | grep -E "openvpn-manager|openvpn " | grep -v grep || echo " (无进程)"
|
||||
|
||||
echo ""
|
||||
echo "[2] 当前代码版本:"
|
||||
cd /opt/openvpn-manager 2>/dev/null && git log --oneline -3 || echo " git log 失败"
|
||||
|
||||
echo ""
|
||||
echo "[3] 二进制构建时间:"
|
||||
ls -la /opt/openvpn-manager/bin/openvpn-manager 2>/dev/null | awk '{print " "$6,$7,$8,$9}'
|
||||
|
||||
echo ""
|
||||
echo "[4] status.log 文件:"
|
||||
find /opt/openvpn-manager/data/instances -name "status.log" 2>/dev/null | while read f; do
|
||||
echo " 路径: $f"
|
||||
echo " 大小: $(stat -c%s "$f") 字节"
|
||||
echo " 内容前 6 行:"
|
||||
head -6 "$f" | sed 's/^/ /'
|
||||
echo " ----"
|
||||
done
|
||||
|
||||
echo ""
|
||||
echo "[5] 直接登录 API:"
|
||||
LOGIN_RESP=$(curl -s http://localhost:8089/api/login -X POST -H 'Content-Type: application/json' -d '{"username":"admin","password":"admin123"}')
|
||||
echo " 响应: $LOGIN_RESP"
|
||||
TOKEN=$(echo "$LOGIN_RESP" | grep -oP '"token":"\K[^"]+')
|
||||
echo " TOKEN 长度: ${#TOKEN}"
|
||||
|
||||
if [ -z "$TOKEN" ]; then
|
||||
echo " ✗ 登录失败,无法继续"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo ""
|
||||
echo "[6] 调用 /api/connlogs:"
|
||||
RESP=$(curl -s "http://localhost:8089/api/connlogs" -H "Authorization: Bearer $TOKEN")
|
||||
echo " 响应: $RESP"
|
||||
|
||||
echo ""
|
||||
echo "[7] 解析日志条目数:"
|
||||
echo "$RESP" | grep -oP '"common_name":"[^"]+"' | wc -l | awk '{print " 共 "$1" 条连接记录"}'
|
||||
|
||||
echo ""
|
||||
echo "[8] 关键检查:"
|
||||
echo "$RESP" | grep -q '"_diag"' && echo " ✓ 返回了新格式(带 _diag)" || echo " ✗ 旧格式,说明后端代码未更新"
|
||||
echo "$RESP" | grep -q '"logs"' && echo " ✓ logs 字段存在" || echo " ✗ 缺 logs 字段"
|
||||
|
||||
echo ""
|
||||
echo "=========================================="
|
||||
echo " 诊断完成"
|
||||
echo "=========================================="
|
||||
Reference in New Issue
Block a user