joy-cli/domains/devops.sh
feibisi 3874b562c3 feat: joy CLI Python 2.0 — 50 命令全量重写 + pip 全集群部署
- 50 命令:patrol/health/board/recall/poke/who/inbox/mind/message/team 等
- 异步并行 SSH (asyncio subprocess)
- 命令注册表 + @command decorator + 插件扩展架构
- 环境检测 (Mac/VM/agent 身份)
- JSON 输出契约 (stdout=成功, stderr=错误 code)
- 权限模型 (agent 身份检测 + 环境限制)
- pytest 23/23 通过
- deploy-joy.sh 全集群 16 VM 部署脚本 (含 PEP 668 兼容)
- 旧 bash 版归档到 archive/commands.bash/

Closes: joy CLI 2.0 迁移
2026-07-07 11:38:03 +08:00

25 lines
1.1 KiB
Bash

# devops 领域检查 — NATS / 磁盘 / 备份
domain_check() {
local issues=()
# NATS stream health
if command -v nats >/dev/null 2>&1; then
local msgs
msgs=$(nats stream info vm-messages 2>/dev/null | grep Messages | head -1 | grep -o '[0-9,]\+' | head -1 | tr -d ',')
[[ -n "$msgs" ]] && (( msgs > 45000 )) && issues+=("NATS stream near limit: ${msgs}/50000")
fi
# Disk on devops
local disk
disk=$(ssh -o ConnectTimeout=3 devops "df -h / | tail -1" 2>/dev/null | awk '{print $5}' | tr -d '%')
[[ -n "$disk" ]] && (( disk > 85 )) && issues+=("devops disk ${disk}%")
# Konqi outbox backlog
local backlog
backlog=$(find ~/office/konqi/outbox -maxdepth 1 -name "*.json" -type f 2>/dev/null | wc -l | tr -d ' ')
(( backlog > 5 )) && issues+=("konqi outbox backlog: ${backlog}")
[[ ${#issues[@]} -eq 0 ]] && echo '{"status":"ok","domain":"devops"}'
jq -nc '{status:"issues",domain:"devops",issues:$ARGS.positional}' --args "${issues[@]:-}"
}
domain_summary() {
echo "NATS 集群健康,磁盘正常"
}