#!/bin/bash echo "=== 修复 inkos 审计问题 ===" # 1. 停止所有 inkos 进程 echo "1. 停止 inkos 进程..." pkill -f "inkos" 2>/dev/null sleep 3 # 2. 备份当前状态 echo "2. 备份当前状态..." BACKUP_DIR="/root/.openclaw/workspace/backups/inkos_fix_$(date +%Y%m%d_%H%M%S)" mkdir -p "$BACKUP_DIR" cp -r /root/.openclaw/workspace/tomato-novel/books/末日重生-开局囤货十亿物资/story/state/* "$BACKUP_DIR/" 2>/dev/null || true # 3. 修复 index.json 数据问题 echo "3. 修复 index.json 数据问题..." cd /root/.openclaw/workspace/tomato-novel/books/末日重生-开局囤货十亿物资/chapters # 检查并修复空标题问题 python3 -c " import json import os try: with open('index.json', 'r', encoding='utf-8') as f: data = json.load(f) print(f'原始条目数: {len(data)}') # 修复空标题 fixed_count = 0 for i, item in enumerate(data): if 'title' not in item or not item['title'] or item['title'].strip() == '': if 'number' in item: item['title'] = f'第{item[\"number\"]}章' fixed_count += 1 else: item['title'] = '未命名章节' fixed_count += 1 print(f'修复了 {fixed_count} 个空标题') # 保存修复后的文件 with open('index.json', 'w', encoding='utf-8') as f: json.dump(data, f, ensure_ascii=False, indent=2) print('index.json 修复完成') except Exception as e: print(f'修复 index.json 时出错: {e}') " # 4. 清理运行时文件 echo "4. 清理运行时文件..." RUNTIME_DIR="/root/.openclaw/workspace/tomato-novel/books/末日重生-开局囤货十亿物资/story/runtime" if [ -d "$RUNTIME_DIR" ]; then # 备份运行时文件 cp -r "$RUNTIME_DIR" "$BACKUP_DIR/runtime_backup" 2>/dev/null || true # 清理有问题的运行时文件(保留前100章) find "$RUNTIME_DIR" -name "chapter-*.json" -type f | sort -V | tail -n +101 | xargs rm -f 2>/dev/null || true echo "已清理 chapter-100 之后的运行时文件" fi # 5. 重置 inkos 状态 echo "5. 重置 inkos 状态..." STATE_DIR="/root/.openclaw/workspace/tomato-novel/books/末日重生-开局囤货十亿物资/story/state" if [ -d "$STATE_DIR" ]; then # 创建新的状态文件 cat > "$STATE_DIR/current_state.md" << 'EOF' # 当前状态 ## 角色状态 - **陈末**: 在城西旧货场棚子,伤口感染,正在制定对付疤哥的计划 - **小雨**: 在吴建军物流园安全位置 - **小野**: 在吴建军物流园安全位置 - **疤哥**: 资金链断裂,老鬼跑路,手下离心 - **刀疤刘**: 准备趁机夺回城南地盘 - **眼镜**: 已离开,提供监控系统后门 ## 物资状态 - 钢材交易完成,定金5万已付 - 监控系统后门密码: 20260816 - 现金: 约10万 - 武器: 匕首一把 ## 时间线 - 当前时间: 8月16日晚上 - 末日倒计时: 25天 - 疤哥计划对胡文斌下手: 3天后 ## 主要威胁 1. 疤哥势力威胁 2. 伤口感染恶化 3. 物资安全 4. 时间紧迫 EOF echo "状态文件已重置" fi # 6. 启动 inkos echo "6. 启动 inkos..." cd /root/.openclaw/workspace/tomato-novel && nohup inkos up > /tmp/inkos_fix_start.log 2>&1 & # 等待启动 sleep 10 # 7. 检查状态 echo "7. 检查状态..." if ps aux | grep -q "inkos up" | grep -v grep; then PID=$(ps aux | grep "inkos up" | grep -v grep | awk '{print $2}') echo "✅ inkos 守护进程已启动 (PID: $PID)" # 检查书籍状态 cd /root/.openclaw/workspace/tomato-novel && inkos status 2>/dev/null || echo "无法获取状态" else echo "❌ inkos 启动失败" echo "查看日志: tail -50 /tmp/inkos_fix_start.log" fi echo "=== 修复完成 ===" echo "备份位置: $BACKUP_DIR"