Files
telegram-customer-bot/monitor_session.sh
2025-11-01 21:58:31 +08:00

46 lines
1.4 KiB
Bash
Executable File

#\!/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 监控完成"