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

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

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

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

图例:

功能亮点

  • 精准的硬件发现 :整合 lsblkudevadmdmidecodesmartctlfindmntpterm 等工具,统一输出每个部件的规范视图。
  • 磁盘基准测试 :在真实挂载点上执行校准后的 dd 测试(避开 tmpfs),并记录读/写吞吐与 SMART 数据。
  • 事件追踪:快照持久化在 SQLite,比较器会标记新增/移除/迁移,并保留完整时间线,便于审计。
  • 留存策略 :默认保存 30 天历史(可通过 sinfo retention 调整),过期记录可自动或手动清理。
  • 自动化友好 :支持多种输出格式(graphtablejsonjson-lineyaml),按硬件类型筛选,分级输出 (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 覆盖 intervalretentionspeed-test 等参数。sinfo serve 将常驻运行,不断采集并写入快照直至服务停止。

参与贡献

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

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

相关推荐
SelectDB10 小时前
Litefuse 开源并推出单进程轻量模式,25 秒就能跑起来的 Agent 可观测与评估平台
运维·后端·自动化运维
XIAOHEZIcode2 天前
Linux系统鼠标偏移常见原因以及修复方案
linux·运维·游戏
用户0328472220702 天前
如何搭建本地yum源(上)
运维
大树885 天前
金刚石散热越强,管路越先见顶
大数据·运维·服务器·人工智能·ai
摇滚侠5 天前
Linux CentOS7 rpm 安装 MySQL 5.7
linux·运维·mysql
霸道流氓气质5 天前
领域驱动设计(DDD)在 Spring Boot 微服务中的实践指南
运维·spring boot·微服务
Inhand陈工6 天前
基于台达PLC与映翰通IG502的智慧水产养殖精准投喂与远程运维解决方案
运维·人工智能·物联网·阿里云·信息与通信
酣大智6 天前
ARP代理--工作原理
运维·网络·arp·arp代理
shushangyun_6 天前
2026年快消品B2B系统推荐:支持终端门店订货、促销政策自动化的工具?
java·运维·网络·数据库·人工智能·spring·自动化
施努卡机器视觉6 天前
SNK施努卡侧滑门锁上滑轮总成自动化装配线,从零件到组件,全流程精密制造方案
运维·自动化·制造