From 695a06d373f78355fdc6ab9ed31fe27672b1328a Mon Sep 17 00:00:00 2001 From: hotyue <52734432+hotyue@users.noreply.github.com> Date: Wed, 1 Apr 2026 07:10:45 +0000 Subject: [PATCH] =?UTF-8?q?feat:=20=E8=A1=A5=E9=BD=90=20Telegram=20?= =?UTF-8?q?=E6=AF=8F=E6=97=A5=E6=88=98=E6=8A=A5=E5=8F=91=E9=80=81=E6=A8=A1?= =?UTF-8?q?=E5=9D=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- core/tg_report.sh | 73 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 73 insertions(+) create mode 100755 core/tg_report.sh diff --git a/core/tg_report.sh b/core/tg_report.sh new file mode 100755 index 0000000..d5466bb --- /dev/null +++ b/core/tg_report.sh @@ -0,0 +1,73 @@ +#!/bin/bash + +# ========================================================== +# 脚本名称: tg_report.sh (Telegram 每日战报模块) +# 核心功能: 分析日志并推送 24 小时统计数据到 TG +# ========================================================== + +INSTALL_DIR="/opt/ip_sentinel" +CONFIG_FILE="${INSTALL_DIR}/config.conf" +LOG_FILE="${INSTALL_DIR}/logs/sentinel.log" + +# 1. 加载配置并自检 +if [ ! -f "$CONFIG_FILE" ]; then exit 1; fi +source "$CONFIG_FILE" + +if [ -z "$TG_TOKEN" ] || [ -z "$CHAT_ID" ]; then + echo "⚠️ 未配置 Telegram 机器人参数,取消播报。" + exit 0 +fi + +# 2. 截取过去 24 小时的日志 +LOG_CONTENT=$(find "$LOG_FILE" -mtime -1 -exec cat {} \; 2>/dev/null) + +if [ -z "$LOG_CONTENT" ]; then + MSG="⚠️ **IP-Sentinel 警告**%0A过去 24 小时内没有检测到 [${REGION_NAME}] 节点的运行日志,请检查守护进程!" +else + # 3. 数据精准分析 + TOTAL_SESSIONS=$(echo "$LOG_CONTENT" | grep "\[START\]" -c) + SUCCESS_COUNT=$(echo "$LOG_CONTENT" | grep "✅" -c) + FAILED_COUNT=$(echo "$LOG_CONTENT" | grep "❌" -c) + UNKNOWN_COUNT=$(echo "$LOG_CONTENT" | grep "⚠️" -c) + + LAST_SCORE=$(echo "$LOG_CONTENT" | grep "\[SCORE\]" | tail -n 1 | awk -F'] ' '{print $2}') + + if [ "$TOTAL_SESSIONS" -gt 0 ]; then + RATE=$(awk "BEGIN {printf \"%.1f\", ($SUCCESS_COUNT/$TOTAL_SESSIONS)*100}") + else + RATE=0 + fi + + # 动态国旗 + case "$REGION_CODE" in + "JP") FLAG="🇯🇵" ;; + "US") FLAG="🇺🇸" ;; + "DE") FLAG="🇩🇪" ;; + "SG") FLAG="🇸🇬" ;; + *) FLAG="🌐" ;; + esac + + # 4. 组装 Markdown 消息体 + read -r -d '' MSG < /dev/null + +echo "✅ Telegram 统计数据发送指令已执行!请检查手机。" \ No newline at end of file