# 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 秒),如需平均值建议多次采样 - 网络数据为累计值,对比时需记录时间差