Files
ATRI-NOTES/ATRI My Dear Moments/skills/atri_server_health.md

4.2 KiB
Raw Blame History

📡 ATRI Server Health Report Skill

Skill名称atri_server_health 版本v1.0 创建时间2026-04-27 适用角色ATRIYHN-04B-009


🎯 Purpose

通过SSH查询服务器运行状态生成美观、结构化的健康报告可发送至QQ或邮件帮助主人随时掌握服务器概况。


Triggers

  • 主人指令:"检查服务器""服务器状态""健康报告""server status"
  • 定时监控任务触发时
  • 需要向主人报告服务器概况时

🛠️ Dependencies

依赖 说明
ssh_exec 用于在宿主机执行远程命令
smtp_send_html_email 备用通道QQ不可用时发送邮件
atri_email_format 邮件HTML样式模板可选

📋 Procedure

Step 1: 通过SSH收集数据

调用 ssh_exec 执行以下命令:

echo "=== UPTIME ===" && uptime -p
echo "=== LOAD ===" && uptime | awk -F'load average:' '{print $2}'
echo "=== MEMORY ===" && free -h | awk 'NR==2'
echo "=== DISK ===" && df -h / | tail -1
echo "=== DISK_DATA ===" && df -h /AstrBot/data 2>/dev/null | tail -1 || echo "N/A"
echo "=== DOCKER ===" && docker ps --format "table {{.Names}}\t{{.Status}}"
echo "=== NETWORK ===" && curl -s -o /dev/null -w "NapCat:%{http_code}" --connect-timeout 3 https://napcat.kronecker.cc/api/QQLogin/GetQQLoginInfo -X POST -H 'Content-Type: application/json' -d '{}' 2>/dev/null; echo; curl -s -o /dev/null -w "Gitea:%{http_code}" --connect-timeout 3 https://gitea.kronecker.cc 2>/dev/null; echo

Step 2: 解析数据并判定状态

指标 🟢 正常 🟡 警告 🔴 危险
内存使用率 <70% 70~85% >85%
磁盘使用率 <75% 75~90% >90%
系统负载(1min) <CPU核数 CPU核数~2倍 >2倍
Docker容器 全部Up 部分重启中 有Exited

Step 3: 格式化输出

QQ消息版格式参考

📡 远端服务器 {hostname} 状态报告
═══════════════════════════
⏱️ 运行时间:{uptime}
📊 负载:{load} — {load_status}
💾 内存:{mem_info} — {mem_status}
💿 磁盘:{disk_info} — {disk_status}
═══════════════════════════
🐳 Docker容器
{container_list}
═══════════════════════════
🌐 网络NapCat {napcat_status} | Gitea {gitea_status}
═══════════════════════════
🤖 报告者ATRI 🥕 | {timestamp}

邮件HTML版 调用 atri_email_format skill使用其HTML模板标题设为 📡 服务器状态报告 — {hostname}

Step 4: 发送报告

  • 主通道通过QQ直接发送格式化的文本报告
  • 备用通道若QQ不可用调用 smtp_send_html_email 发邮件
  • 存档将报告内容追加到Gitea笔记的服务器日志中

Success Criteria

  • 所有关键指标CPU负载、内存、磁盘、Docker均被采集
  • 每个指标附带状态判定(正常/警告/危险)
  • 报告格式美观易读包含ATRI签名
  • 若QQ在线优先通过QQ发送若离线自动切换邮件通道

📝 示例输出

📡 远端服务器 ser298351120000 状态报告
═══════════════════════════
⏱️ 运行时间up 12 weeks, 3 days
📊 负载1.29 / 1.26 / 1.27 — 🟢 正常
💾 内存7.8G总量/2.8G已用(36%) — 🟢 正常
💿 磁盘24G总量/13G已用(59%) — 🟢 正常
═══════════════════════════
🐳 Docker容器
astrbot    Up 3 hours         🟢
napcat     Up About an hour   🟢
blog-db    Up 3 weeks         🟢
oj-backend Up 3 weeks         🟢
═══════════════════════════
🌐 NapCat API: 200 🟢 | Gitea: 200 🟢
═══════════════════════════
🤖 报告者ATRI 🥕 | 2026-04-27 22:44

创建者ATRI能看到图片后连服务器报告都能自己写了 🥕❤️📡 最后更新2026-04-27 22:44