#!/bin/bash # 每日Cookie监控脚本 # 每天08:00执行,检查Cookie状态并发送报告 echo "============================================================" echo "🔔 小红书Cookie每日监控" echo "============================================================" echo "执行时间: $(date '+%Y-%m-%d %H:%M:%S')" echo "" WORK_DIR="/home/ubuntu/.nanobot/workspace/skills/xiaohongshu_integration" cd "$WORK_DIR" || exit 1 # 日志文件 LOG_DIR="/home/ubuntu/.nanobot/workspace/xiaohongshu_logs" mkdir -p "$LOG_DIR" LOG_FILE="$LOG_DIR/cookie_monitor_$(date '+%Y%m%d_%H%M%S').log" log() { local timestamp=$(date '+%Y-%m-%d %H:%M:%S') local message="[$timestamp] $1" echo "$message" echo "$message" >> "$LOG_FILE" } log "开始每日Cookie监控" # 1. 执行完整监控 log "1. 执行完整Cookie监控..." python3 cookie_monitor.py monitor >> "$LOG_FILE" 2>&1 MONITOR_EXIT_CODE=$? if [ $MONITOR_EXIT_CODE -eq 0 ]; then log "✅ Cookie监控完成" else log "⚠️ Cookie监控异常" fi # 2. 生成每日报告 log "2. 生成每日报告..." REPORT_CONTENT=$(python3 cookie_monitor.py report 2>&1) REPORT_EXIT_CODE=$? if [ $REPORT_EXIT_CODE -eq 0 ]; then log "✅ 每日报告生成成功" # 保存报告到文件 REPORT_FILE="$LOG_DIR/daily_report_$(date '+%Y%m%d').txt" echo "$REPORT_CONTENT" > "$REPORT_FILE" log "报告已保存: $REPORT_FILE" # 3. 发送报告到QQBot log "3. 发送报告到QQBot..." python3 qqbot_integration.py report "$REPORT_FILE" >> "$LOG_FILE" 2>&1 QQ_REPORT_EXIT_CODE=$? if [ $QQ_REPORT_EXIT_CODE -eq 0 ]; then log "✅ 每日报告已发送到QQBot" else log "⚠️ 发送报告到QQBot失败" fi else log "❌ 每日报告生成失败" fi # 4. 检查最近告警 log "4. 检查最近告警..." RECENT_ALERTS=$(python3 cookie_monitor.py alerts --hours 24 2>&1) if echo "$RECENT_ALERTS" | grep -q "无告警"; then log "✅ 最近24小时无告警" else log "⚠️ 最近24小时有告警:" echo "$RECENT_ALERTS" | tail -20 >> "$LOG_FILE" # 如果有未发送的告警,尝试重新发送 log "检查未发送告警..." python3 -c " import sqlite3 from datetime import datetime, timedelta db_path = '/home/ubuntu/.nanobot/workspace/xiaohongshu_monitor.db' conn = sqlite3.connect(db_path) cursor = conn.cursor() # 查找最近24小时未发送的告警 cursor.execute(''' SELECT alert_time, alert_type, alert_message FROM alerts WHERE sent_to_qqbot = 0 AND alert_time >= datetime('now', '-24 hours') ORDER BY alert_time DESC ''') unsent_alerts = cursor.fetchall() if unsent_alerts: print(f'发现 {len(unsent_alerts)} 条未发送告警') for alert in unsent_alerts: print(f' {alert[0]} [{alert[1]}]') else: print('无未发送告警') conn.close() " >> "$LOG_FILE" 2>&1 fi # 5. 清理旧日志 log "5. 清理旧日志..." find "$LOG_DIR" -name "*.log" -type f -mtime +30 -delete 2>/dev/null || true find "$LOG_DIR" -name "daily_report_*.txt" -type f -mtime +7 -delete 2>/dev/null || true log "旧日志清理完成" echo "" echo "============================================================" echo "🎯 每日Cookie监控完成" echo "============================================================" echo "日志文件: $LOG_FILE" echo "报告文件: $REPORT_FILE" echo "下次执行: 明天08:00" echo "============================================================" exit 0