#\!/bin/bash # Session 监控脚本 - 检查 session 健康状态 LOG_FILE="logs/session_monitor.log" SESSION_FILE="user_session.session" log() { echo "[$(date "+%Y-%m-%d %H:%M:%S")] $1" | tee -a "$LOG_FILE" } # 检查 session 文件 if [ \! -f "$SESSION_FILE" ]; then log "❌ 错误: $SESSION_FILE 不存在!" log "尝试运行恢复..." ./protect_session.sh exit 1 fi # 检查文件大小 SIZE=$(stat -f%z "$SESSION_FILE" 2>/dev/null || stat -c%s "$SESSION_FILE" 2>/dev/null) if [ "$SIZE" -lt 1000 ]; then log "⚠️ 警告: Session 文件太小 (${SIZE} bytes)" fi # 检查最近的错误日志 AUTH_ERRORS=$(tail -100 logs/integrated_bot_errors.log 2>/dev/null | grep -c "AUTH_KEY_UNREGISTERED") if [ "$AUTH_ERRORS" -gt 0 ]; then log "⚠️ 警告: 发现 $AUTH_ERRORS 个 AUTH_KEY 错误(可能是旧错误)" # 检查是否是最近5分钟的错误 RECENT_ERRORS=$(tail -50 logs/integrated_bot_errors.log 2>/dev/null | grep "AUTH_KEY_UNREGISTERED" | wc -l) if [ "$RECENT_ERRORS" -gt 0 ]; then log "❌ 严重: 检测到最近的 AUTH_KEY 错误!" log "建议立即检查 session 文件" fi fi # 检查 Pyrogram 是否运行 if grep -q "✅ Pyrogram客户端已启动" logs/integrated_bot_detailed.log 2>/dev/null; then log "✅ Pyrogram 客户端正常运行" else log "⚠️ 警告: Pyrogram 客户端状态未知" fi log "Session 监控完成"