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

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

相关推荐
Awkwardx1 天前
Linux网络编程—数据链路层
linux·运维·网络
树下水月1 天前
docker 启动后 如何通过对应的进程 找docker-compose.yaml 编排文件
运维·docker·容器
凯子坚持 c1 天前
Docker 网络管理深度解析与实践指南
运维·docker·容器
liwenzhen20051 天前
Linux OOM 问题之 DMSERVER 受害者
linux·运维·oom
人生匆匆1 天前
部署使用rathole内网穿透
linux·运维·docker
Prada-88081 天前
dig常用命令
linux·运维·服务器
boy快快长大1 天前
下载Dokcer安装到另一台无网CentOS
linux·运维·centos
IMA小队长1 天前
Linux下Mamba-YOLO复现
linux·运维·yolo
C语言不精1 天前
Tina Linux SDK编译SDK-linux环境下实现
linux·运维·服务器
番茄迷人蛋1 天前
后端项目服务器部署
java·运维·服务器·spring