novel-doomsday-resurgence/inkos_simple_monitor.sh
唐天洛 5dc8c00de0 feat(sync): 固化小说内容到Git仓库
📚 小说内容:
- 《末日重生-开局囤货十亿物资》33章
- 完整的状态文件、记忆索引、钩子系统

🛠️ 系统配置:
- 版本控制管理系统
- 自动化脚本系统
- 质量监控系统

🧠 固化记忆:
- 长期记忆文件
- 系统配置文档
- 恢复流程指南

💾 数据安全:
- 本地备份系统
- Git版本控制
- 远程同步机制

同步时间: 2026-03-30 16:25:35
系统状态: inkos正常运行中 (PID: 1433309)
创作进度: 第33章《油粮》创作中
2026-03-30 16:25:35 +08:00

155 lines
4.3 KiB
Bash
Executable File
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#!/bin/bash
echo "=== inkos 简单监控系统 ==="
echo "时间: $(date)"
echo ""
# 配置
PROJECT_DIR="/root/.openclaw/workspace/tomato-novel"
BOOK_ID="末日重生-开局囤货十亿物资"
CHAP_DIR="$PROJECT_DIR/books/$BOOK_ID/chapters"
# 获取初始章节数量
INITIAL_CHAP_COUNT=$(find "$CHAP_DIR" -name "*.md" -type f | grep -E "^[0-9]{4}_" | wc -l)
echo "📊 初始状态:"
echo " - 章节数量: $INITIAL_CHAP_COUNT"
echo " - 监控开始: $(date -Iseconds)"
echo ""
# 监控循环
MONITOR_INTERVAL=30 # 秒
MONITOR_CYCLES=60 # 30分钟
for ((i=1; i<=MONITOR_CYCLES; i++)); do
# 1. 检查 inkos 状态
if ps aux | grep "inkos up" | grep -v grep > /dev/null; then
PID=$(ps aux | grep "inkos up" | grep -v grep | awk '{print $2}')
STATUS="✅ 运行中 (PID: $PID)"
else
STATUS="❌ 未运行"
fi
# 2. 检查章节变化
CURRENT_CHAP_COUNT=$(find "$CHAP_DIR" -name "*.md" -type f | grep -E "^[0-9]{4}_" | wc -l)
NEW_CHAP_COUNT=$((CURRENT_CHAP_COUNT - INITIAL_CHAP_COUNT))
# 3. 检查日志
if [ -f /tmp/inkos_optimized.log ]; then
LOG_TAIL=$(tail -2 /tmp/inkos_optimized.log 2>/dev/null | tr '\n' ' ')
else
LOG_TAIL="无日志"
fi
# 4. 显示状态
echo "========================================"
echo "监控周期 #$i - $(date +%H:%M:%S)"
echo "========================================"
echo ""
echo "🖥️ inkos状态: $STATUS"
echo "📚 章节统计:"
echo " - 初始数量: $INITIAL_CHAP_COUNT"
echo " - 当前数量: $CURRENT_CHAP_COUNT"
echo " - 新增章节: $NEW_CHAP_COUNT"
echo ""
# 如果有新章节,检查质量
if [ $NEW_CHAP_COUNT -gt 0 ]; then
echo "🎉 发现新章节!"
echo "🔍 检查新章节:"
# 找到最新的章节
NEWEST_CHAP=$(find "$CHAP_DIR" -name "*.md" -type f -printf "%T@ %p\n" | sort -rn | head -1 | cut -d' ' -f2-)
if [ -f "$NEWEST_CHAP" ]; then
CHAP_NAME=$(basename "$NEWEST_CHAP")
CHAP_SIZE=$(wc -c < "$NEWEST_CHAP" 2>/dev/null || echo 0)
echo " - 文件名: $CHAP_NAME"
echo " - 文件大小: $CHAP_SIZE 字符"
echo ""
# 质量检查
echo " 🔍 质量检查:"
python3 /root/.openclaw/workspace/tomato-novel/scripts/simple_quality_check.py "$NEWEST_CHAP" 2>/dev/null | \
grep -E "段落分析|爽点分析|对话分析|发现问题|修复建议|章节号" | head -8
fi
fi
# 5. 检查是否第19章产出
if ls "$CHAP_DIR/0019_"*.md 2>/dev/null >/dev/null; then
echo ""
echo "🎉 第19章已产出!"
CHAP_FILE=$(ls -t "$CHAP_DIR/0019_"*.md 2>/dev/null | head -1)
CHAP_SIZE=$(wc -c < "$CHAP_FILE" 2>/dev/null || echo 0)
echo "📊 章节信息:"
echo " - 文件名: $(basename "$CHAP_FILE")"
echo " - 文件大小: $CHAP_SIZE 字符"
echo " - 产出时间: $(stat -c %y "$CHAP_FILE" 2>/dev/null || echo "unknown")"
echo ""
# 详细质量检查
echo "🔍 详细质量检查:"
python3 /root/.openclaw/workspace/tomato-novel/scripts/simple_quality_check.py "$CHAP_FILE" 2>&1 | tail -30
echo ""
echo "✅ 监控目标达成!"
echo "第19章已成功产出请检查质量是否符合番茄小说标准"
exit 0
fi
# 6. 显示日志
echo "📝 最近日志: $LOG_TAIL"
echo ""
echo "⏳ 等待 ${MONITOR_INTERVAL}秒..."
sleep $MONITOR_INTERVAL
# 更新章节计数
INITIAL_CHAP_COUNT=$CURRENT_CHAP_COUNT
done
echo ""
echo "========================================"
echo "监控结束 - 达到最长监控时间"
echo "时间: $(date)"
echo "========================================"
echo ""
echo "⚠️ 注意第19章尚未产出"
echo "📊 最后状态:"
echo " - 章节数量: $CURRENT_CHAP_COUNT"
echo " - inkos状态: $STATUS"
echo " - 最近日志: $LOG_TAIL"
echo ""
echo "🎯 建议:"
echo "1. 检查 inkos 日志: /tmp/inkos_optimized.log"
echo "2. 可能需要手动干预"
echo "3. 检查 spot-fix 修复状态"
echo "4. 考虑重启 inkos"