#!/bin/bash # Agent监控脚本 - 极简可靠版 # 每个将军运行此脚本监控自己的任务 AGENT="$1" if [ -z "$AGENT" ]; then echo "使用方法: ./agent_monitor.sh " echo "例如: ./agent_monitor.sh pangtong" echo "支持的agent: pangtong, zhangfei, guanyu, zhaoyun, jiangwei, simayi" exit 1 fi # 日志文件 LOG_FILE="${AGENT}.log" echo "=========================================" >> "$LOG_FILE" echo "Agent监控启动 - $AGENT" >> "$LOG_FILE" echo "启动时间: $(date)" >> "$LOG_FILE" echo "检查间隔: 30秒" >> "$LOG_FILE" echo "监控目录: management/agents/${AGENT}/" >> "$LOG_FILE" echo "=========================================" >> "$LOG_FILE" echo "🚀 $AGENT Agent监控器启动" echo "📊 检查间隔: 30秒" echo "📝 日志文件: $LOG_FILE" while true; do TIMESTAMP=$(date '+%Y-%m-%d %H:%M:%S') # 检查是否有.task文件 TASK_FILES=$(ls management/agents/${AGENT}/*.task 2>/dev/null) if [ -n "$TASK_FILES" ]; then for TASK_FILE in $TASK_FILES; do TASK_ID=$(basename "$TASK_FILE" .task | sed 's/_.*//') echo "[$TIMESTAMP] $AGENT 发现新任务: $TASK_ID" >> "$LOG_FILE" echo "[$TIMESTAMP] $AGENT 发现新任务: $TASK_ID" # 读取任务内容 TASK_CONTENT=$(head -20 "$TASK_FILE" 2>/dev/null) echo "[$TIMESTAMP] 任务内容:" >> "$LOG_FILE" echo "$TASK_CONTENT" >> "$LOG_FILE" # 这里可以添加Agent自己的执行逻辑 # 各将军可以在这里实现自己的任务处理 # 完成任务后删除.task文件 rm "$TASK_FILE" echo "[$TIMESTAMP] $AGENT 完成任务: $TASK_ID" >> "$LOG_FILE" echo "[$TIMESTAMP] $AGENT 完成任务: $TASK_ID" done else echo "[$TIMESTAMP] $AGENT 无新任务" >> "$LOG_FILE" fi # 等待30秒 sleep 30 done