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 等)。

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

相关推荐
旗开得胜马到成功5 分钟前
可信备份技术解析:中科热备如何防范备份数据被攻击
运维·服务器
JavaPub-rodert21 分钟前
使用 Docker 部署 Ollama:Docker Compose 一键运行 DeepSeek-R1 1.5B
运维·docker·容器
蓝速科技24 分钟前
蓝速科技信创落地:平衡安全合规与项目成本的实战方案
android·运维·人工智能·科技·安全·电脑·鸿蒙
NJCloud43 分钟前
MooseFS 分布式存储部署与高可用架构实践
linux·运维·分布式·架构
晓晓_za89866844 分钟前
Geo 优化源码蒸馏词机制:地域词库构建与匹配逻辑详解
运维·tcp/ip·spring·缓存·ci/cd
奈斯先生Vector1 小时前
从 127.0.0.1:3080 到插件运行时:DeepSeek Harness 远程开发与版本治理实战
linux·运维·人工智能·ubuntu·aigc
Android系统攻城狮2 小时前
Linux PipeWire深度解析之pw_stream_new调用流程与实战(七十八)
linux·运维·服务器·音频进阶·pipewire音频实战进阶
东莞和裕包装4 小时前
如何管控广州定制纸箱生产中的啤切精度与印刷色差质量问题
大数据·运维·网络·人工智能
小飞侠在吗5 小时前
Windows 下 Nginx 访问 127.0.0.1 报 50x 错误:根因是路径里 \t 被当成 Tab
运维·windows·nginx
九硕智慧建筑一体化厂家6 小时前
楼宇自控|智慧建筑核心引擎!楼宇自控系统,赋能建筑高效低碳运维
运维·人工智能·笔记·智慧城市