初始化提交

This commit is contained in:
2026-04-07 14:11:45 +08:00
parent 46342134b6
commit c412e4de5f
69 changed files with 19321 additions and 1 deletions
+44
View File
@@ -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
+35
View File
@@ -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
+29
View File
@@ -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
+29
View File
@@ -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
+54
View File
@@ -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;"