46 lines
1.4 KiB
Bash
Executable File
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 监控完成"
|