#!/bin/bash # 简化版WeCom双插件架构部署 echo "==========================================" echo "WeCom双插件架构部署" echo "==========================================" echo "[1/8] 检查系统依赖..." if ! command -v node &> /dev/null; then echo "❌ Node.js未安装" exit 1 fi if ! command -v python3 &> /dev/null; then echo "❌ Python3未安装" exit 1 fi echo "✅ 依赖检查通过" echo "[2/8] 安装MCP SDK依赖..." cd /root/.openclaw/agents/101/workspace if [ ! -d "node_modules/@modelcontextprotocol" ]; then npm init -y > /dev/null 2>&1 npm install @modelcontextprotocol/sdk --save > /dev/null 2>&1 echo "✅ MCP SDK安装完成" else echo "✅ MCP SDK已安装" fi echo "[3/8] 配置脚本权限..." chmod +x /root/.openclaw/agents/101/workspace/wecom-cli-mcp-server.js chmod +x /root/.openclaw/agents/101/workspace/wecom_cli_tool.py chmod +x /root/.openclaw/agents/101/workspace/franchisee_sync_complete.py echo "✅ 脚本权限配置完成" echo "[4/8] 测试MCP Server..." # 创建测试脚本 cat > /tmp/test_mcp.py << 'TESTEOF' import subprocess, json, time, sys server = subprocess.Popen(["node", "/root/.openclaw/agents/101/workspace/wecom-cli-mcp-server.js"], stdin=subprocess.PIPE, stdout=subprocess.PIPE, stderr=subprocess.PIPE, text=True) time.sleep(2) request = {"jsonrpc": "2.0", "id": 1, "method": "tools/list", "params": {}} try: stdout, stderr = server.communicate(input=json.dumps(request) + "\n", timeout=5) if stdout: resp = json.loads(stdout) tools = resp.get("result", {}).get("tools", []) print(f"✅ 发现 {len(tools)} 个工具") sys.exit(0) else: print("❌ 无响应") sys.exit(1) except: print("❌ 测试失败") sys.exit(1) finally: if server.poll() is None: server.terminate() TESTEOF if python3 /tmp/test_mcp.py; then echo "✅ MCP Server测试通过" else echo "⚠️ MCP Server测试失败(继续部署)" fi echo "[5/8] 配置Cron任务..." # 移除旧任务 crontab -l 2>/dev/null | grep -v "franchisee" | crontab - 2>/dev/null || true # 添加新任务 (crontab -l 2>/dev/null; echo "*/1 * * * * /usr/bin/python3 /root/.openclaw/agents/101/workspace/franchisee_sync_complete.py >> /var/log/franchisee_sync_complete.log 2>&1") | crontab - echo "✅ Cron任务配置完成" echo "[6/8] 创建日志文件..." touch /var/log/franchisee_sync_complete.log 2>/dev/null || true chmod 644 /var/log/franchisee_sync_complete.log 2>/dev/null || true echo "✅ 日志文件创建完成" echo "[7/8] 创建监控脚本..." cat > /root/.openclaw/agents/101/workspace/monitor.sh << 'MONEOF' #!/bin/bash echo "=== WeCom系统监控 ===" echo "时间: $(date)" echo "" echo "1. Cron任务:" crontab -l 2>/dev/null | grep franchisee && echo "✅ 已配置" || echo "❌ 未配置" echo "" echo "2. 日志文件:" ls -la /var/log/franchisee_sync_complete.log 2>/dev/null && echo "✅ 存在" || echo "❌ 不存在" echo "" echo "3. 运行进程:" ps aux | grep -i franchisee | grep -v grep | wc -l | xargs echo "数量:" echo "" echo "4. MCP Server:" ps aux | grep -i wecom-cli-mcp-server | grep -v grep | wc -l | xargs echo "数量:" echo "=== 监控结束 ===" MONEOF chmod +x /root/.openclaw/agents/101/workspace/monitor.sh echo "✅ 监控脚本创建完成" echo "[8/8] 执行首次同步测试..." python3 /root/.openclaw/agents/101/workspace/franchisee_sync_complete.py > /tmp/first_sync.log 2>&1 if [ $? -eq 0 ]; then echo "✅ 首次同步测试成功" echo "日志摘要:" tail -5 /tmp/first_sync.log else echo "⚠️ 首次同步测试失败,查看日志: /tmp/first_sync.log" fi echo "" echo "==========================================" echo "部署完成!" echo "==========================================" echo "" echo "🎉 WeCom双插件架构已部署完成" echo "" echo "📋 部署成果:" echo " 1. MCP Server: wecom-cli-mcp-server.js" echo " 2. 同步脚本: franchisee_sync_complete.py" echo " 3. Cron任务: 每分钟执行一次" echo " 4. 监控脚本: monitor.sh" echo "" echo "🚀 使用方法:" echo " 手动执行: python3 franchisee_sync_complete.py" echo " 查看状态: bash monitor.sh" echo " 查看日志: tail -f /var/log/franchisee_sync_complete.log" echo "" echo "⚠️ 注意: 当前使用模拟数据,需要配置真实企业微信凭证" echo "=========================================="