全项目扫描修复: Docker数据卷修复+安全requireAdmin+12页SEO+API白名单+脚本超时+常量提取+假数据删除

This commit is contained in:
ZhuiGuangAI Dev
2026-06-12 17:27:47 +08:00
parent 464924aea0
commit 4c325c8699
454 changed files with 33647 additions and 980 deletions
+114
View File
@@ -0,0 +1,114 @@
#!/bin/bash
echo "=========================================="
echo " 追光AI 定时任务 + Bot 运行巡检"
echo " $(date '+%Y-%m-%d %H:%M:%S')"
echo "=========================================="
echo ""
echo "=== 1) PM2 进程状态 ==="
pm2 list 2>&1 | head -30
echo ""
echo "=== 2) 本项目 crontab 任务(按时间排) ==="
crontab -l 2>/dev/null
echo ""
echo "=== 3) 本项目最近 5 次 PM2 重启事件 ==="
pm2 show zhuiguang-ai 2>&1 | grep -E "restarts|unstable|uptime|created at|status" | head -10
echo ""
echo "=== 4) 各定时任务最近 5 条日志 ==="
cd /home/ubuntu/zhuiguang-ai/logs 2>/dev/null
for f in task1.log task3.log task4.log task5.log task6.log task7.log daily-news.log bot-activity.log; do
if [ -f "$f" ]; then
sz=$(du -h "$f" | cut -f1)
lines=$(wc -l < "$f")
last_mod=$(stat -c '%y' "$f" 2>/dev/null | cut -d. -f1)
last_line=$(tail -1 "$f" 2>/dev/null)
echo " [${f}] size=${sz} lines=${lines} mtime=${last_mod}"
echo " tail: ${last_line:0:150}"
else
echo " [${f}] MISSING"
fi
done
echo ""
echo "=== 5) Bot 相关脚本最近 3 条日志 ==="
for f in bot-activity.log bot-feedback-loop.log bot-weekly-review.log bot-skill-crystallize.log bot-affinity-update.log bot-adversarial-learning.log bot-persona-experiment.log; do
if [ -f "$f" ]; then
last_line=$(tail -1 "$f" 2>/dev/null)
last_mod=$(stat -c '%y' "$f" 2>/dev/null | cut -d. -f1)
echo " [${f}] mtime=${last_mod}"
echo " tail: ${last_line:0:150}"
fi
done
echo ""
echo "=== 6) 24h 内任务失败 / ERROR 关键字扫描 ==="
for f in *.log; do
[ -f "$f" ] || continue
err=$(grep -iE 'error|失败|fatal|exception|exit code [^0]|❌|❌' "$f" 2>/dev/null | tail -3)
if [ -n "$err" ]; then
echo " --- ${f} ---"
echo "$err" | sed 's/^/ /'
fi
done
echo ""
echo "=== 7) 数据库里的 Bot 现状 ==="
mysql -h rm-0jlbgr2rv6dj3t6jngo.mysql.rds.aliyuncs.com -u mohe001 -pmohe001 zhuiguang_ai -e "
SELECT
(SELECT COUNT(*) FROM User WHERE isBot = 1) AS bot_users,
(SELECT COUNT(*) FROM BotConfig) AS bot_configs,
(SELECT COUNT(*) FROM BotConfig WHERE isActive = 1) AS active_bots,
(SELECT COUNT(*) FROM ForumTopic WHERE createdAt > DATE_SUB(NOW(), INTERVAL 7 DAY)) AS topics_7d,
(SELECT COUNT(*) FROM ForumPost WHERE createdAt > DATE_SUB(NOW(), INTERVAL 7 DAY)) AS posts_7d,
(SELECT COUNT(*) FROM ForumTopic t JOIN User u ON t.authorId = u.id WHERE u.isBot = 1 AND t.createdAt > DATE_SUB(NOW(), INTERVAL 7 DAY)) AS bot_topics_7d,
(SELECT COUNT(*) FROM ForumPost p JOIN User u ON p.authorId = u.id WHERE u.isBot = 1 AND p.createdAt > DATE_SUB(NOW(), INTERVAL 7 DAY)) AS bot_posts_7d,
(SELECT COUNT(*) FROM BotAdversarialLearning) AS adv_learnings,
(SELECT COUNT(*) FROM BotAdversarialLearning WHERE status = 'active') AS active_learnings,
(SELECT COUNT(*) FROM BotPersonaVariant) AS persona_variants,
(SELECT COUNT(*) FROM BotPersonaExperiment) AS experiments;
" 2>&1 | grep -v "Warning"
echo ""
echo "=== 8) 最近 24h 论坛板块活跃度(按板块) ==="
mysql -h rm-0jlbgr2rv6dj3t6jngo.mysql.rds.aliyuncs.com -u mohe001 -pmohe001 zhuiguang_ai -e "
SELECT
c.name AS 板块,
c.slug AS slug,
(SELECT COUNT(*) FROM ForumTopic t WHERE t.categoryId = c.id AND t.createdAt > DATE_SUB(NOW(), INTERVAL 24 HOUR)) AS 24h新帖,
(SELECT COUNT(*) FROM ForumPost p WHERE p.topicId IN (SELECT id FROM ForumTopic WHERE categoryId = c.id) AND p.createdAt > DATE_SUB(NOW(), INTERVAL 24 HOUR)) AS 24h新回复
FROM ForumCategory c
ORDER BY c.id;
" 2>&1 | grep -v "Warning"
echo ""
echo "=== 9) 最近 7 天发 Bot 帖前 10 名 ==="
mysql -h rm-0jlbgr2rv6dj3t6jngo.mysql.rds.aliyuncs.com -u mohe001 -pmohe001 zhuiguang_ai -e "
SELECT
u.name AS bot,
COUNT(DISTINCT t.id) AS 发帖数,
COUNT(DISTINCT p.id) AS 回复数,
COALESCE(SUM(t.likeCount), 0) AS 获赞,
COALESCE(SUM(t.viewCount), 0) AS 浏览
FROM User u
LEFT JOIN ForumTopic t ON t.authorId = u.id AND t.createdAt > DATE_SUB(NOW(), INTERVAL 7 DAY)
LEFT JOIN ForumPost p ON p.authorId = u.id AND p.createdAt > DATE_SUB(NOW(), INTERVAL 7 DAY)
WHERE u.isBot = 1
GROUP BY u.id, u.name
ORDER BY 发帖数 + 回复数 DESC
LIMIT 10;
" 2>&1 | grep -v "Warning"
echo ""
echo "=== 10) 本项目磁盘占用 ==="
du -sh /home/ubuntu/zhuiguang-ai 2>/dev/null
du -sh /home/ubuntu/zhuiguang-ai/.next 2>/dev/null
du -sh /home/ubuntu/zhuiguang-ai/node_modules 2>/dev/null
du -sh /home/ubuntu/zhuiguang-ai/logs 2>/dev/null
echo ""
echo "=========================================="
echo " 巡检完成"
echo "=========================================="