6 个版本
0.2.1 | 2022年6月28日 |
---|---|
0.2.0 | 2021年8月15日 |
0.1.3 | 2021年8月9日 |
0.1.1 | 2021年7月16日 |
#1529 在 命令行工具
38KB
730 行
sysstatus
一个小巧快速的工具,可以获取系统概览,包括负载、存储使用情况、温度和服务。
安装
源代码
- 克隆仓库
git clone [email protected]:scratchcat1/sysstatus.git
- 进入仓库
cd sysstatus
- 使用
cargo build
构建 - 使用
cargo run
或cargo run --release
- (可选) 使用不同的配置文件,使用
cargo run -- -c /path/to/config.json
选项
sysstatus 0.1.1
USAGE:
sysstatus [FLAGS] [OPTIONS]
FLAGS:
--default-config Create a default config file and then exit
-h, --help Prints help information
-V, --version Prints version information
OPTIONS:
-c, --config-file-path <config-file-path>
Path to configuration file. Default is $HOME/.config/sysstatus/config.json
配置
sysstatus
需要一个配置文件来运行,默认情况下会查找 $HOME/.config/sysstatus/config.json
。要手动指定配置文件,请使用 sysstatus --config /path/to/config.json
。
可以使用 sysstatus --default-config
生成默认配置。
颜色
颜色必须使用反序列化为 colored::Color
的值,请参阅此处的枚举。有效的示例包括 "Black"
、"BrightCyan"
和 { "TrueColor": { "r": 3, "g": 4, "b": 255 } }
条件颜色
ConditionalColour
允许根据属性值动态选择文本颜色。每个 ConditionalColour
都有一个默认颜色和零个或多个 ColourLevel
,其定义如下
{
"default_colour": "Green",
"levels": [
{
"min": 0.5,
"colour": "Yellow"
},
{
"min": 0.8,
"colour": "Red"
}
]
}
ConditionalColour
通过选择列表中颜色值大于或等于 min
的最远颜色来评估。每个级别的 min
必须随着列表的遍历而增加,否则行为是未定义的。
在以下示例中
- 0.1 => 绿色
- 0.49 => 绿色
- 0.5 => 黄色
- 0.7 => 黄色
- 0.8 => 红色
- 10.0 => 红色
示例配置(带说明)
{
// [Optional] Configuration for general overview
"general_info": {
// ConditionalColour for load average. Comparison value = load / cores.
"load_avg": {
"default_colour": "Green",
"levels": [
{
"min": 0.5,
"colour": "Yellow"
},
{
"min": 0.8,
"colour": "Red"
}
]
},
// Conditional Colour for memory usage. Comparison value = used / total.
"memory": {
"default_colour": "Green",
"levels": [
{
"min": 0.7,
"colour": "Yellow"
},
{
"min": 0.9,
"colour": "Red"
}
]
},
// ConditionalColour for CPU frequency. Comparison value = CPU frequency in MHz.
"cpu_frequency": {
"default_colour": "Green",
"levels": [
{
"min": 2000,
"colour": "Yellow"
},
{
"min": 2400,
"colour": "Red"
}
]
}
},
// [Optional] Configuration for the storage bars
"storage": {
// ConditionalColour for colouring the usage bars of storage usage. Comparison value = used / total.
"usage_colouring": {
"default_colour": "Green",
"levels": [
{
"min": 0.8,
"colour": "Yellow"
},
{
"min": 0.9,
"colour": "Red"
}
]
},
"exclude_prefixes": [
"/var/lib/docker/"
]
},
// [Optional] ConditionalColour for temperature. Comparison value = temperature of component.
"temperature": {
"default_colour": "Green",
"levels": [
{
"min": 70,
"colour": "Yellow"
},
{
"min": 85,
"colour": "Red"
}
]
},
// [Optional] Map of service names to service configurations
// The ending .service is not needed.
"services": {
"docker": {
// ConditionalColour for memory usage of service. Comparison value = memory usage in bytes.
"memory_usage": {
"default_colour": "White",
"levels": [
{
"min": 2000,
"colour": "Yellow"
},
{
"min": 2400,
"colour": "Red"
}
]
}
},
"ntp": {},
"ufw": {}
},
// [Optional] Configuration for last login section.
"last_login": {
// Optionally only include logins which occur before a certain time.
// Accepts any value which `last --since` accepts e.g. `+5days`, `yesterday`.
"since": "yesterday",
// Mapping of usernames to fetch the last logins for to the configuration for that user's last login.
"users": {
"pi": {
// Optionally limit the maximum number of logins shown of the user.
"max_lines": 4
},
"root": {
// Optionally set the colour of the username.
"username_colour": "Red"
}
}
}
}
常见问题解答
为什么我的所有 systemd 服务都显示 0B 的内存使用量?
在某些 systemd 安装中,内存会计默认是禁用的。您可以通过取消注释或设置
DefaultMemoryAccounting=yes
在 /etc/systemd/system.conf
中,然后运行 systemctl daemon-reexec
来启用它。
有关更多详细信息,请参阅此 stackoverflow 问题。
替代方案
致谢
此程序部分源自 rust-motd
,特别是在格式化和处理最后登录解析方面。
依赖关系
~6–18MB
~192K SLoC