SysInfoKeeper是一款面向 Linux/Unix 的硬件变动检测 CLI 工具

SysInfoKeeper 是一款面向 Linux/Unix 的硬件资产与漂移检测 CLI 工具。

每次执行都会采集完整的硬件快照(CPU、内存、磁盘、网卡、GPU、风扇、传感器等),与存储在 SQLite 中的历史记录比对,并将设备标记为 新增 、移除 、变更 或 位置调整。CLI 支持渲染丰富的终端表格、输出 JSON/YAML,也可以作为守护进程持续记录硬件事件。

获取:github.com/binrchq/sys...

图例:

功能亮点

  • 精准的硬件发现 :整合 lsblk、udevadm、dmidecode、smartctl、findmnt、pterm 等工具,统一输出每个部件的规范视图。
  • 磁盘基准测试 :在真实挂载点上执行校准后的 dd 测试(避开 tmpfs),并记录读/写吞吐与 SMART 数据。
  • 事件追踪:快照持久化在 SQLite,比较器会标记新增/移除/迁移,并保留完整时间线,便于审计。
  • 留存策略 :默认保存 30 天历史(可通过 sinfo retention 调整),过期记录可自动或手动清理。
  • 自动化友好 :支持多种输出格式(graph、table、json、json-line、yaml),按硬件类型筛选,分级输出 (basic / advanced / full),并附带 systemd service 与 AppImage 打包脚本。
bash 复制代码
.
├── cmd/sinfo/            # Cobra CLI 入口(root、clean、retention 等)
├── core/                 # 采集器、模型、数据库层、比较器
│   ├── hardware/         # 快照管理、DB 存储、调度器
│   ├── model/            # 渲染助手与 JSON 结构体
│   └── packages/         # CPU / RAM / Disk / GPU / NIC 采集逻辑
├── deployments/          # systemd 示例
├── tools/                # 调用图、构建脚本
├── LICENSE               # 双重许可策略(AGPLv3 + 商业协议)
├── LICENSE.AGPLv3        # AGPLv3 正文
└── LICENSE.COMMERCIAL    # 商业授权摘要

获取:

ini 复制代码
GO111MODULE=on go install binrc.com/sysinfokeeper/cmd/sinfo@latest
sinfo

核心命令

命令 说明
sinfo 采集硬件信息、输出结果并写入快照。
sinfo clean 清理历史记录(支持 --all、--inactive、--days、--type、--dry-run 等)。
sinfo retention 查看或修改留存天数(默认 30 天)。
sinfo --output json 机器可读输出。
sinfo --target cpu --target memory 仅采集指定硬件类型。

无人值守场景可结合 cron/systemd,或使用 core/hardware/scheduler.go 中的调度器。

使用 serve 以 systemd 服务方式运行

仓库中已经提供了参考配置 deployments/sinfo.service。可将其复制到 /etc/systemd/system/ 并按需修改,用于长时间运行 sinfo serve 调度任务:

ini 复制代码
[Unit]
Description=SysInfoKeeper Hardware Monitoring Service
After=network-online.target
Wants=network-online.target

[Service]
Type=simple
User=sysinfokeeper
Group=sysinfokeeper
WorkingDirectory=/var/lib/sysinfokeeper
Environment=SINFO_INTERVAL=3600
Environment=SINFO_RETENTION=30
Environment=SINFO_SPEED_TEST=low
EnvironmentFile=-/etc/sysinfokeeper.env
ExecStart=/usr/local/bin/sinfo serve \
  --interval $SINFO_INTERVAL \
  --retention $SINFO_RETENTION \
  --speed-test $SINFO_SPEED_TEST
Restart=on-failure

[Install]
WantedBy=multi-user.target

可以通过环境变量或 /etc/sysinfokeeper.env 覆盖 interval、retention、speed-test 等参数。sinfo serve 将常驻运行,不断采集并写入快照直至服务停止。

参与贡献

  1. Fork & Clone 仓库。
  2. 开启 Go Modules(GO111MODULE=on)。
  3. 提交前请 gofmt/goimports,并运行 lint / test。
  4. 提交 Issue 时请尽量描述硬件环境(内核、发行版、存储拓扑、RAID 等)。

贡献默认遵循本项目的双重许可方案(见下文)。

相关推荐
꯭自꯭闭꯭4 小时前
达梦事物特性及MVCC
linux·运维·数据库
亚川楼宇自控系统数据中心厂家6 小时前
实验室智能化管理系统|人环物智一体化管控平台
运维
zmsup7 小时前
Agent 上下文调优:结合 OpsArk 运维智能体,设计模型每一步真正需要的信息
运维·agent·上下文压缩·运维智能体·上下文调优
吴声子夜歌10 小时前
Nginx应用与运维——Nginx负载均衡应用实战(二)
运维·nginx·负载均衡
lisanmengmeng10 小时前
NRPE 添加命令(一)
linux·运维·服务器
pt104310 小时前
CML网络仿真入门-2:使用CML模拟网络实验环境
运维·网络协议
沫璃染墨11 小时前
《从零入门Linux系统篇(五十七):线程篇·十——生产者消费者模型进阶:从环形缓冲区到POSIX信号量》
linux·运维·服务器·开发语言·c++·系统架构·信号处理
HAHAXX812 小时前
电商RPA批量上架通用方案:一套流程如何同时跑通拼多多、抖店、淘宝和跨境平台
java·运维·rpa
零基础12312 小时前
LLM Agent 驱动的物模型构建:从设备手册到边缘接入的自动化实践
运维·人工智能·经验分享·python·自动化
程序猿老A13 小时前
从入门型到企业型:云服务器开放共享型到独享型规格升级
运维·服务器