3 个版本
0.1.2 | 2022年9月25日 |
---|---|
0.1.1 | 2022年9月17日 |
0.1.0 | 2022年9月17日 |
#2352 in 命令行工具
48KB
1K SLoC
Netidx 系统文件发布者
netidx-sysfs 将小系统文件(如 sysfs 和 procfs 中发现的)的内容发布到 netidx,并允许在权限允许的情况下写回值。由于 sysfs 和 procfs 的特性,netidx-sysfs 会以以下可能意外的行为运行,
- 对结构和文件内容的纯轮询,不使用例如 inotify。这是因为 inotify 在目标文件系统上要么完全不起作用,要么只部分起作用。
- 对结构和文件的轮询频率进行线性退避以减少不经常更改的文件系统的开销。当前的最大轮询间隔为 120 秒,而最小间隔为 1 秒。只有更改的文件才会产生更新,即使它至少每 120 秒轮询一次,如果文件的内容没有更改,则不会产生更新。
- 对结构和文件的按需轮询。只有订阅的文件才会被轮询。结构只在订阅的文件附近轮询(例如,如果目录包含订阅的文件,或者最近尝试订阅文件,则只读取目录)。因此,如果 netidx-sysfs 不被使用,它应该不会消耗 CPU 时间,并且只会消耗很少的内存。
- 跨平台(Unix,可能 Windows)。不使用 io uring 或其他平台特定 API,仅使用 tokio 和 std 文件操作。
- 仅读取每个文件的第一个 1k,无论其大小如何。非常适合小文件,对大文件可以容忍但可能没有用。不仅限于 sysfs/procfs,只是针对该用例进行了定制。
设置
要设置,请使用 cargo install netidx-sysfs
,并确保您在本地计算机或网络上的某个位置有 netidx 解析器。要运行,要么以普通用户身份运行,在这种情况下您将无法看到一切,要么以 root 身份运行以获得完全访问权限。例如:
# netidx-sysfs -a local -b local --netidx-base /local/system/sysfs --path /sys
将 sysfs 发布到 /local/system/sysfs
当然,您不仅限于本地发布,您还可以将网络上每台机器的 sysfs 发布到 netidx,这样您就可以通过网络读取和操作值,同时享受 netidx 和您的 Kerberos v5 基础设施提供的强大加密、认证和授权。
浏览
由于解析器和浏览器会自动从常规树结构推断表格结构,因此sysfs和procfs中的许多内容将被自动格式化为表格。例如,以下是查看我的/sys/block
的示例。
依赖项
~16–48MB
~735K SLoC