系统状态技能

This commit is contained in:
qing committed 2026-08-04 12:57:27 +08:00
1 parent 2eb6d3c310
commit 5ff1dfa4d2
1 file changed
+113
+113
View File
@@ -0,0 +1,113 @@
# sysinfo - 获取系统运行时间、CPU、内存、磁盘、网络、负载、温度、电池等状态信息的技能
## 功能概述
本技能用于查询 Linux 服务器/本机的系统状态信息。它通过 `psutil` 库和系统命令采集数据,支持按需获取单项或组合信息,支持文本和 JSON 两种输出格式。
**依赖要求**:需要 Python3 环境,并安装 `psutil` 库(`pip install psutil`)。若未安装,可改用 `/proc`、`free`、`df`、`uptime`、`top` 等系统命令替代(见下文备选方案)。
## 信息类型及对应获取方法
### 1. 系统基本信息 (system)
- 系统名称、主机名、内核版本、硬件架构、处理器型号、Python 版本
- 命令:`uname -a`、`hostname`、`python3 --version`
### 2. 运行时间 (uptime)
- 开机时间、已运行时长(天/时/分/秒)
- 命令:`uptime -s`(开机时间)、`uptime`(运行时长)
### 3. CPU 信息 (cpu)
- 物理核心数、逻辑核心数、实时使用率、当前频率
- 命令:`lscpu`、`nproc`、`top -bn1 | head -5`、`cat /proc/cpuinfo`
### 4. 内存信息 (memory)
- 总内存、可用内存、已用内存、内存使用率、交换分区大小及使用率
- 命令:`free -h`
### 5. 指定磁盘信息 (disk)
- 指定路径(默认 `/`)的总空间、已用、可用、使用率
- 命令:`df -h /路径`
### 6. 所有磁盘分区 (disks)
- 所有挂载点的文件系统、总空间、已用、可用、使用率
- 命令:`df -hT`
### 7. 进程信息 (process)
- 进程总数、运行中进程数、睡眠进程数
- 命令:`ps -e | wc -l`、`ps -eo stat | grep -c '^R'`、`ps -eo stat | grep -c '^S'`
### 8. 网络信息 (network)
- 累计发送/接收的数据量(MB)、发送/接收包数
- 命令:`cat /proc/net/dev`、`ip -s link`
### 9. 系统负载 (load)
- 1/5/15 分钟负载及每核心负载
- 命令:`cat /proc/loadavg`、`uptime`
### 10. 温度信息 (temperature)
- CPU/主板等传感器温度(仅支持部分硬件)
- 命令:`sensors`(需安装 lm-sensors)、`cat /sys/class/thermal/thermal_zone*/temp`
### 11. 电池信息 (battery)
- 电量百分比、是否充电中、剩余时间(仅笔记本)
- 命令:`cat /sys/class/power_supply/BAT0/capacity`、`cat /sys/class/power_supply/BAT0/status`
## 使用方式
### 方式一:直接运行原版 Python 脚本(若旧版技能仍可用)
```bash
# 获取系统基本信息
python3 /opt/micro_servers/aibox/skills/info.py --info system
# 获取 CPU + 内存 + 磁盘信息
python3 /opt/micro_servers/aibox/skills/info.py --info cpu --info memory --info disk
# 指定磁盘路径
python3 /opt/micro_servers/aibox/skills/info.py --info disk --disk-path /home
# 获取所有信息(JSON 格式,便于程序解析)
python3 /opt/micro_servers/aibox/skills/info.py --info all --format json
# 获取负载 + 温度 + 电池
python3 /opt/micro_servers/aibox/skills/info.py --info load --info temperature --info battery
```
### 方式二:使用系统命令(无 psutil 时的备选方案)
```bash
# 综合系统信息
uname -a && hostname && uptime && free -h && df -hT && nproc
```
## 参数说明(原版脚本)
| 参数 | 简写 | 说明 |
|------|------|------|
| `--info` / `-i` | 可多次 | 信息类型:system/uptime/cpu/memory/disk/disks/process/network/load/temperature/battery/all |
| `--disk-path` / `-d` | 默认 `/` | 磁盘检查路径 |
| `--format` / `-f` | 默认 text | 输出格式:text 或 json |
| `--help` / `-h` | - | 显示帮助与示例 |
## 输出示例(文本格式)
```
系统信息:
系统: Linux
主机名: my-server
架构: x86_64
CPU信息:
物理核心数: 4
逻辑核心数: 8
使用率: 12.5%
内存信息:
总内存: 15.58 GB
可用内存: 8.21 GB
内存使用率: 45.2%
```
## 典型使用场景
1. **运维巡检**:配合定时任务,每日采集系统资源快照,监控负载与内存趋势
2. **故障排查**:磁盘空间告警时,快速定位使用率最高的挂载点
3. **性能评估**:获取 CPU 核心数、内存大小、网络吞吐等硬件基线数据
4. **上报集成**:使用 `--format json` 输出结构化数据,便于脚本解析和上报
## 注意事项
- 温度/电池信息仅在支持对应硬件的系统上可用,服务器通常无电池
- CPU 使用率为瞬时采样(间隔 1 秒),如需平均值建议多次采样
- 网络数据为累计值,对比时需记录时间差