add README
This commit is contained in:
parent
ce2e3dcf46
commit
d8ed6f1abf
90
README.md
Normal file
90
README.md
Normal file
@ -0,0 +1,90 @@
|
|||||||
|
# sysinfo
|
||||||
|
|
||||||
|
**sysinfo** captures a point-in-time snapshot of block devices, ZFS pools,
|
||||||
|
network interfaces, sensors, installed packages, and other host metadata.
|
||||||
|
It writes a structured tree to `/etc/sysinfo/` and also produces a single
|
||||||
|
JSON document.
|
||||||
|
|
||||||
|
* Repository <https://git.eeqj.de/sneak/sysinfo>
|
||||||
|
|
||||||
|
* License [WTFPL](https://www.wtfpl.net/)
|
||||||
|
|
||||||
|
* Author sneak — <sneak@sneak.berlin>
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Quick install & run (Go 1.22 or newer)
|
||||||
|
|
||||||
|
```console
|
||||||
|
# install the latest tagged build into $GOBIN
|
||||||
|
go install git.eeqj.de/sneak/sysinfo/cmd/sysinfo@latest
|
||||||
|
|
||||||
|
# generate a snapshot
|
||||||
|
sudo sysinfo
|
||||||
|
```
|
||||||
|
|
||||||
|
Check the embedded version string:
|
||||||
|
|
||||||
|
```console
|
||||||
|
sysinfo --version
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Typical usage
|
||||||
|
|
||||||
|
```console
|
||||||
|
sudo sysinfo # write /etc/sysinfo + snapshot.json
|
||||||
|
sudo sysinfo --force # overwrite existing snapshot
|
||||||
|
sudo sysinfo --json > out.json # JSON to stdout only
|
||||||
|
```
|
||||||
|
|
||||||
|
* On first run, required utilities (e.g. `smartctl`, `zfsutils-linux`,
|
||||||
|
`lm-sensors`) are installed automatically via **apt-get** with
|
||||||
|
`DEBIAN_FRONTEND=noninteractive`.
|
||||||
|
* Collectors run only when their prerequisites are met (e.g. the ZFS
|
||||||
|
collector runs only if `zpool` is present).
|
||||||
|
* Only ubuntu is supported for now.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Building from source
|
||||||
|
|
||||||
|
```console
|
||||||
|
git clone https://git.eeqj.de/sneak/sysinfo.git
|
||||||
|
cd sysinfo
|
||||||
|
make build # builds ./sysinfo with embedded version
|
||||||
|
sudo ./sysinfo
|
||||||
|
```
|
||||||
|
|
||||||
|
`make install` installs the tool to `$GOBIN`.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Snapshot layout (example)
|
||||||
|
|
||||||
|
```
|
||||||
|
/etc/sysinfo/
|
||||||
|
├── snapshot.json
|
||||||
|
├── system/
|
||||||
|
├── blockdevs/
|
||||||
|
├── network/
|
||||||
|
├── sensors/
|
||||||
|
├── packages/
|
||||||
|
└── zfs/
|
||||||
|
```
|
||||||
|
|
||||||
|
`snapshot.json` contains the same data flattened into a single file; the
|
||||||
|
directories mirror the JSON hierarchy for easy inspection.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Notes
|
||||||
|
|
||||||
|
* Developed and tested on Ubuntu 22.04+. Additional distros can be
|
||||||
|
supported by implementing new `PackageManager` back-ends.
|
||||||
|
* No telemetry or external network access is performed other than an
|
||||||
|
IP geolocation lookup (`curl https://ipinfo.io`) on default
|
||||||
|
interfaces.
|
||||||
|
|
||||||
|
PRs and patches are welcome.
|
Loading…
Reference in New Issue
Block a user