124 lines
3.4 KiB
Bash
Executable File
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 |