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

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

相关推荐
happymagic1 小时前
vmware workstation Pro 虚拟机设定启停的时间段
运维·服务器·windows
一只鹿鹿鹿1 小时前
三甲综合智慧医院信息化总体解决方案(PPT文件)
大数据·运维·物联网·安全·政务
AI的探索之旅1 小时前
BOM管理的AI自动化:从原理图到采购清单,我搭了一套全自动工具链
运维·人工智能·自动化
Kina_C2 小时前
HAProxy 负载均衡实战:从安装配置到高级参数详解
linux·运维·负载均衡·haproxy
Tyfrank3 小时前
Linux内核收包路径及中断
linux·运维·单片机
阳光九叶草LXGZXJ4 小时前
达梦数据库-报错-11-cmd 13 validate error
linux·运维·数据库·sql·学习
~光~~4 小时前
【嵌入式linux学习_OV8858 bring up】L1_从Sensor到RK3588发生了什么
linux·运维·学习
运维大师4 小时前
【K8S 运维实战】32-GitOps实践ArgoCD
运维·kubernetes·argocd
Nuanyt4 小时前
Linux系统的 Shell 常见指令和常见知识点(以bash为主)
linux·运维·chrome·bash
星恒随风5 小时前
Linux 权限详解:从 rwx、chmod 到 umask、目录权限与粘滞位
linux·运维·服务器·笔记·学习