初始化提交
This commit is contained in:
Executable
+44
@@ -0,0 +1,44 @@
|
||||
#!/bin/bash
|
||||
# ///
|
||||
# clean_logs.sh
|
||||
# 描述:清理旧日志
|
||||
# 作者:AI Generated
|
||||
# 创建日期:2026-04-06
|
||||
#
|
||||
# 使用方式:
|
||||
# ./clean_logs.sh # 清理 30 天前的日志
|
||||
# ./clean_logs.sh 7 # 清理 7 天前的日志
|
||||
# ./clean_logs.sh --dry-run # 预览要清理的日志数量
|
||||
# ///
|
||||
|
||||
DB_HOST=${DB_HOST:-localhost}
|
||||
DB_PORT=${DB_PORT:-5432}
|
||||
DB_NAME=${DB_NAME:-wxauto}
|
||||
DB_USER=${DB_USER:-wxauto}
|
||||
DB_PASS=${DB_PASS:-wxauto_password}
|
||||
|
||||
export PGPASSWORD="$DB_PASS"
|
||||
|
||||
DAYS=${1:-30}
|
||||
DRY_RUN=false
|
||||
|
||||
if [ "$1" == "--dry-run" ]; then
|
||||
DRY_RUN=true
|
||||
DAYS=${2:-30}
|
||||
fi
|
||||
|
||||
if [ "$DRY_RUN" == true ]; then
|
||||
echo "=== 预览将清理的日志 (${DAYS} 天前) ==="
|
||||
psql -h "$DB_HOST" -p "$DB_PORT" -U "$DB_USER" -d "$DB_NAME" -c \
|
||||
"SELECT COUNT(*) as logs_to_delete FROM logs WHERE timestamp < NOW() - INTERVAL '$DAYS days';"
|
||||
else
|
||||
echo "=== 清理 ${DAYS} 天前的日志 ==="
|
||||
read -p "确认删除? (y/n) " confirm
|
||||
if [ "$confirm" == "y" ]; then
|
||||
psql -h "$DB_HOST" -p "$DB_PORT" -U "$DB_USER" -d "$DB_NAME" -c \
|
||||
"DELETE FROM logs WHERE timestamp < NOW() - INTERVAL '$DAYS days';"
|
||||
echo "清理完成"
|
||||
else
|
||||
echo "已取消"
|
||||
fi
|
||||
fi
|
||||
Executable
+35
@@ -0,0 +1,35 @@
|
||||
#!/bin/bash
|
||||
# ///
|
||||
# query_logs.sh
|
||||
# 描述:查询最近日志
|
||||
# 作者:AI Generated
|
||||
# 创建日期:2026-04-06
|
||||
#
|
||||
# 使用方式:
|
||||
# ./query_logs.sh # 最近 50 条
|
||||
# ./query_logs.sh 100 # 最近 100 条
|
||||
# ./query_logs.sh 50 error # 最近 50 条 error 日志
|
||||
# ///
|
||||
|
||||
DB_HOST=${DB_HOST:-localhost}
|
||||
DB_PORT=${DB_PORT:-5432}
|
||||
DB_NAME=${DB_NAME:-wxauto}
|
||||
DB_USER=${DB_USER:-wxauto}
|
||||
DB_PASS=${DB_PASS:-wxauto_password}
|
||||
|
||||
export PGPASSWORD="$DB_PASS"
|
||||
|
||||
LIMIT=${1:-50}
|
||||
LEVEL_FILTER=${2:-}
|
||||
|
||||
if [ -n "$LEVEL_FILTER" ]; then
|
||||
echo "=== 最近 ${LIMIT} 条 ${LEVEL_FILTER} 日志 ==="
|
||||
psql -h "$DB_HOST" -p "$DB_PORT" -U "$DB_USER" -d "$DB_NAME" -c \
|
||||
"SELECT id, to_char(timestamp, 'YYYY-MM-DD HH24:MI:SS') as time, level, source, message \
|
||||
FROM logs WHERE level = '$LEVEL_FILTER' ORDER BY timestamp DESC LIMIT $LIMIT;"
|
||||
else
|
||||
echo "=== 最近 ${LIMIT} 条日志 ==="
|
||||
psql -h "$DB_HOST" -p "$DB_PORT" -U "$DB_USER" -d "$DB_NAME" -c \
|
||||
"SELECT id, to_char(timestamp, 'YYYY-MM-DD HH24:MI:SS') as time, level, source, message \
|
||||
FROM logs ORDER BY timestamp DESC LIMIT $LIMIT;"
|
||||
fi
|
||||
Executable
+29
@@ -0,0 +1,29 @@
|
||||
#!/bin/bash
|
||||
# ///
|
||||
# query_nodes.sh
|
||||
# 描述:查询所有节点
|
||||
# 作者:AI Generated
|
||||
# 创建日期:2026-04-06
|
||||
#
|
||||
# 使用方式:
|
||||
# ./query_nodes.sh # 查询所有节点
|
||||
# ./query_nodes.sh <node_id> # 查询指定节点
|
||||
# ///
|
||||
|
||||
DB_HOST=${DB_HOST:-localhost}
|
||||
DB_PORT=${DB_PORT:-5432}
|
||||
DB_NAME=${DB_NAME:-wxauto}
|
||||
DB_USER=${DB_USER:-wxauto}
|
||||
DB_PASS=${DB_PASS:-wxauto_password}
|
||||
|
||||
export PGPASSWORD="$DB_PASS"
|
||||
|
||||
if [ -n "$1" ]; then
|
||||
echo "=== 节点信息: $1 ==="
|
||||
psql -h "$DB_HOST" -p "$DB_PORT" -U "$DB_USER" -d "$DB_NAME" -c \
|
||||
"SELECT * FROM nodes WHERE node_id = '$1';"
|
||||
else
|
||||
echo "=== 所有节点 ==="
|
||||
psql -h "$DB_HOST" -p "$DB_PORT" -U "$DB_USER" -d "$DB_NAME" -c \
|
||||
"SELECT node_id, name, api_url, enabled, status, wechat_status, is_healthy, group FROM nodes ORDER BY node_id;"
|
||||
fi
|
||||
Executable
+29
@@ -0,0 +1,29 @@
|
||||
#!/bin/bash
|
||||
# ///
|
||||
# query_webhooks.sh
|
||||
# 描述:查询所有 Webhook 配置
|
||||
# 作者:AI Generated
|
||||
# 创建日期:2026-04-06
|
||||
#
|
||||
# 使用方式:
|
||||
# ./query_webhooks.sh # 查询所有 webhook
|
||||
# ./query_webhooks.sh <webhook_id> # 查询指定 webhook
|
||||
# ///
|
||||
|
||||
DB_HOST=${DB_HOST:-localhost}
|
||||
DB_PORT=${DB_PORT:-5432}
|
||||
DB_NAME=${DB_NAME:-wxauto}
|
||||
DB_USER=${DB_USER:-wxauto}
|
||||
DB_PASS=${DB_PASS:-wxauto_password}
|
||||
|
||||
export PGPASSWORD="$DB_PASS"
|
||||
|
||||
if [ -n "$1" ]; then
|
||||
echo "=== Webhook ID: $1 ==="
|
||||
psql -h "$DB_HOST" -p "$DB_PORT" -U "$DB_USER" -d "$DB_NAME" -c \
|
||||
"SELECT * FROM webhook_urls WHERE id = $1;"
|
||||
else
|
||||
echo "=== 所有 Webhook ==="
|
||||
psql -h "$DB_HOST" -p "$DB_PORT" -U "$DB_USER" -d "$DB_NAME" -c \
|
||||
"SELECT id, name, url, format, enabled, event_types FROM webhook_urls ORDER BY id;"
|
||||
fi
|
||||
Executable
+54
@@ -0,0 +1,54 @@
|
||||
#!/bin/bash
|
||||
# ///
|
||||
# table_stats.sh
|
||||
# 描述:查看数据库表统计信息
|
||||
# 作者:AI Generated
|
||||
# 创建日期:2026-04-06
|
||||
#
|
||||
# 使用方式:
|
||||
# ./table_stats.sh
|
||||
# ///
|
||||
|
||||
DB_HOST=${DB_HOST:-localhost}
|
||||
DB_PORT=${DB_PORT:-5432}
|
||||
DB_NAME=${DB_NAME:-wxauto}
|
||||
DB_USER=${DB_USER:-wxauto}
|
||||
DB_PASS=${DB_PASS:-wxauto_password}
|
||||
|
||||
export PGPASSWORD="$DB_PASS"
|
||||
|
||||
echo "=== 数据库表统计 ==="
|
||||
echo ""
|
||||
|
||||
echo "--- nodes 表 ---"
|
||||
psql -h "$DB_HOST" -p "$DB_PORT" -U "$DB_USER" -d "$DB_NAME" -c \
|
||||
"SELECT COUNT(*) as total_nodes FROM nodes;"
|
||||
|
||||
psql -h "$DB_HOST" -p "$DB_PORT" -U "$DB_USER" -d "$DB_NAME" -c \
|
||||
"SELECT enabled, COUNT(*) FROM nodes GROUP BY enabled;"
|
||||
|
||||
psql -h "$DB_HOST" -p "$DB_PORT" -U "$DB_USER" -d "$DB_NAME" -c \
|
||||
"SELECT status, COUNT(*) FROM nodes GROUP BY status;"
|
||||
|
||||
psql -h "$DB_HOST" -p "$DB_PORT" -U "$DB_USER" -d "$DB_NAME" -c \
|
||||
"SELECT wechat_status, COUNT(*) FROM nodes GROUP BY wechat_status;"
|
||||
|
||||
echo ""
|
||||
echo "--- webhook_urls 表 ---"
|
||||
psql -h "$DB_HOST" -p "$DB_PORT" -U "$DB_USER" -d "$DB_NAME" -c \
|
||||
"SELECT COUNT(*) as total_webhooks FROM webhook_urls;"
|
||||
|
||||
psql -h "$DB_HOST" -p "$DB_PORT" -U "$DB_USER" -d "$DB_NAME" -c \
|
||||
"SELECT enabled, COUNT(*) FROM webhook_urls GROUP BY enabled;"
|
||||
|
||||
echo ""
|
||||
echo "--- logs 表 ---"
|
||||
psql -h "$DB_HOST" -p "$DB_PORT" -U "$DB_USER" -d "$DB_NAME" -c \
|
||||
"SELECT COUNT(*) as total_logs FROM logs;"
|
||||
|
||||
psql -h "$DB_HOST" -p "$DB_PORT" -U "$DB_USER" -d "$DB_NAME" -c \
|
||||
"SELECT level, COUNT(*) FROM logs GROUP BY level ORDER BY count DESC;"
|
||||
|
||||
psql -h "$DB_HOST" -p "$DB_PORT" -U "$DB_USER" -d "$DB_NAME" -c \
|
||||
"SELECT to_char(timestamp, 'YYYY-MM-DD') as date, COUNT(*) \
|
||||
FROM logs GROUP BY date ORDER BY date DESC LIMIT 7;"
|
||||
@@ -0,0 +1,93 @@
|
||||
#!/bin/bash
|
||||
# ///
|
||||
# start_amd64.sh
|
||||
# 描述:AMD64 架构启动脚本 (Intel/AMD 服务器)
|
||||
# 作者:AI Generated
|
||||
# 创建日期:2026-04-05
|
||||
#
|
||||
# 使用方式:
|
||||
# ./start_amd64.sh # 启动所有服务
|
||||
# ./start_amd64.sh status # 查看服务状态
|
||||
# ./start_amd64.sh stop # 停止所有服务
|
||||
# ./start_amd64.sh logs # 查看日志
|
||||
# ./start_amd64.sh rebuild # 重新构建镜像
|
||||
# ///
|
||||
|
||||
set -e
|
||||
|
||||
SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)"
|
||||
PROJECT_DIR="$(dirname "$SCRIPT_DIR")"
|
||||
cd "$PROJECT_DIR"
|
||||
|
||||
check_docker() {
|
||||
if ! command -v docker &> /dev/null; then
|
||||
echo "❌ Docker 未安装,请先安装 Docker"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if ! command -v docker compose &> /dev/null && ! docker compose version &> /dev/null; then
|
||||
echo "❌ Docker Compose 未安装"
|
||||
exit 1
|
||||
fi
|
||||
}
|
||||
|
||||
start() {
|
||||
echo "🚀 启动 WXAuto Center (AMD64)..."
|
||||
|
||||
mkdir -p data/db data/redis data/logs
|
||||
|
||||
docker compose up -d
|
||||
|
||||
echo "✅ 服务启动完成!"
|
||||
echo " - PostgreSQL: localhost:5432"
|
||||
echo " - Redis: localhost:6379"
|
||||
echo " - WXAuto Center: http://localhost:8080"
|
||||
echo " - API文档: http://localhost:8080/docs"
|
||||
}
|
||||
|
||||
stop() {
|
||||
echo "🛑 停止 WXAuto Center..."
|
||||
docker compose down
|
||||
echo "✅ 服务已停止"
|
||||
}
|
||||
|
||||
status() {
|
||||
echo "📊 服务状态:"
|
||||
docker compose ps
|
||||
}
|
||||
|
||||
logs() {
|
||||
echo "📋 日志 (Ctrl+C 退出):"
|
||||
docker compose logs -f
|
||||
}
|
||||
|
||||
rebuild() {
|
||||
echo "🔨 重新构建镜像..."
|
||||
docker compose down
|
||||
docker build -t wxauto-center:latest .
|
||||
docker compose up -d
|
||||
echo "✅ 重建完成"
|
||||
}
|
||||
|
||||
case "${1:-start}" in
|
||||
start)
|
||||
check_docker
|
||||
start
|
||||
;;
|
||||
stop)
|
||||
stop
|
||||
;;
|
||||
status)
|
||||
status
|
||||
;;
|
||||
logs)
|
||||
logs
|
||||
;;
|
||||
rebuild)
|
||||
rebuild
|
||||
;;
|
||||
*)
|
||||
echo "用法: $0 {start|stop|status|logs|rebuild}"
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
@@ -0,0 +1,93 @@
|
||||
#!/bin/bash
|
||||
# ///
|
||||
# start_arm64.sh
|
||||
# 描述:ARM64 架构启动脚本 (Apple Silicon Mac)
|
||||
# 作者:AI Generated
|
||||
# 创建日期:2026-04-05
|
||||
#
|
||||
# 使用方式:
|
||||
# ./start_arm64.sh # 启动所有服务
|
||||
# ./start_arm64.sh status # 查看服务状态
|
||||
# ./start_arm64.sh stop # 停止所有服务
|
||||
# ./start_arm64.sh logs # 查看日志
|
||||
# ./start_arm64.sh rebuild # 重新构建镜像
|
||||
# ///
|
||||
|
||||
set -e
|
||||
|
||||
SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)"
|
||||
PROJECT_DIR="$(dirname "$SCRIPT_DIR")"
|
||||
cd "$PROJECT_DIR"
|
||||
|
||||
check_docker() {
|
||||
if ! command -v docker &> /dev/null; then
|
||||
echo "❌ Docker 未安装,请先安装 Docker Desktop"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if ! command -v docker compose &> /dev/null && ! docker compose version &> /dev/null; then
|
||||
echo "❌ Docker Compose 未安装,请先安装 Docker Desktop"
|
||||
exit 1
|
||||
fi
|
||||
}
|
||||
|
||||
start() {
|
||||
echo "🚀 启动 WXAuto Center (ARM64)..."
|
||||
|
||||
mkdir -p data/db data/redis data/logs
|
||||
|
||||
docker compose up -d
|
||||
|
||||
echo "✅ 服务启动完成!"
|
||||
echo " - PostgreSQL: localhost:5432"
|
||||
echo " - Redis: localhost:6379"
|
||||
echo " - WXAuto Center: http://localhost:8080"
|
||||
echo " - API文档: http://localhost:8080/docs"
|
||||
}
|
||||
|
||||
stop() {
|
||||
echo "🛑 停止 WXAuto Center..."
|
||||
docker compose down
|
||||
echo "✅ 服务已停止"
|
||||
}
|
||||
|
||||
status() {
|
||||
echo "📊 服务状态:"
|
||||
docker compose ps
|
||||
}
|
||||
|
||||
logs() {
|
||||
echo "📋 日志 (Ctrl+C 退出):"
|
||||
docker compose logs -f
|
||||
}
|
||||
|
||||
rebuild() {
|
||||
echo "🔨 重新构建镜像..."
|
||||
docker compose down
|
||||
docker build -t wxauto-center:latest .
|
||||
docker compose up -d
|
||||
echo "✅ 重建完成"
|
||||
}
|
||||
|
||||
case "${1:-start}" in
|
||||
start)
|
||||
check_docker
|
||||
start
|
||||
;;
|
||||
stop)
|
||||
stop
|
||||
;;
|
||||
status)
|
||||
status
|
||||
;;
|
||||
logs)
|
||||
logs
|
||||
;;
|
||||
rebuild)
|
||||
rebuild
|
||||
;;
|
||||
*)
|
||||
echo "用法: $0 {start|stop|status|logs|rebuild}"
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
Reference in New Issue
Block a user