#!/bin/bash # ========================================================== # 脚本名称: tg_report.sh (Telegram 每日战报模块 V5.3 缝合加强版) # 核心功能: 分析日志并推送 24 小时统计数据到 TG (修复 Markdown 断联Bug) # ========================================================== 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. 节点元数据抓取 NODE_NAME=$(hostname | cut -c 1-15) CURRENT_IP=$(curl -4 -s -m 5 api.ip.sb/ip || echo "Unknown") # 智能判断 IP 属性 (通过检查 ISP 标识) ISP_INFO=$(curl -4 -s -m 5 api.ip.sb/geoip | jq -r '.organization' 2>/dev/null) if [[ "$ISP_INFO" == *"Cloudflare"* ]]; then IP_TYPE="Cloudflare Warp 🛰️" else IP_TYPE="Native 原生网卡 🏠" fi # 3. 截取过去 24 小时的日志 LOG_CONTENT=$(find "$LOG_FILE" -mtime -1 -exec cat {} \; 2>/dev/null) if [ -z "$LOG_CONTENT" ]; then # 修复了换行问题,统一用 EOF 块构造 read -r -d '' MSG <> "${INSTALL_DIR}/logs/error.log" else echo "✅ 战报推送成功!" fi