Files
Ubuntu 32b43f85bd a
2026-07-03 16:58:28 +08:00

124 lines
3.4 KiB
Bash
Executable File

#!/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