VitaGuard:我的第一个实时 Linux 系统健康监控(使用 Bash)
发布: (2026年1月11日 GMT+8 00:56)
5 分钟阅读
原文: Dev.to
Source: Dev.to

脚本功能
VitaGuard 提供系统健康的持续更新概览:
资源使用
- CPU 使用率并带有可视化进度条
- 内存使用(已用 vs 总计)
- 根文件系统的磁盘使用
- 对高使用阈值的自动警告
系统信息
- 系统运行时间和负载平均值
- 活跃的网络接口
进程
- 按 CPU 使用率排名前 5 的进程
- 干净、易读的表格输出
日志
扫描最近的系统日志以查找关键问题,过滤错误,例如:
- 内核问题
- 服务失败
- OOM 事件
减少常见日志噪声,仅显示最近的条目。
服务
检查常见服务的状态:
sshddockernginx
所有这些在自动刷新循环中运行,每 5 秒更新一次,直至退出。
为什么我构建它
我想要一个轻量级的工具,能够镜像我在支持或排查 Linux 系统时实际查看的内容——CPU、内存、磁盘、进程以及关键日志条目——而不进行任何过度设计。目标如下:
- 将原始系统指标转换为可读的输出
- 构建可视化的进度条和基于颜色的警报
- 过滤噪声日志,突出有用信号
- 编写结构化、可读且安全的 Bash 脚本
- 创建一个实用的工具,能够直接放到服务器上立即使用
挑战与解决方案
- Progress bar colors 最初没有显示。通过使用
printf "%b"使转义码生效,从而修复。 - Syslog noise 添加了
grep -v过滤器,以去除诸如 “workqueue” 和 “drm” 之类的垃圾信息。 - Process table alignment 使用带固定宽度的
awk来整齐对齐所有内容。
我学到的
- 从
top、free、df等命令获取系统信息(CPU、内存、磁盘),并使用awk进行清理。 - 使用终端颜色码让警告更醒目(绿色表示正常,红色表示异常)。
- 编写不易出错的 Bash 脚本,通过添加检查、处理空结果并保持代码可读性来提升稳健性。
接下来
VitaGuard 的计划改进:
- 可配置的刷新间隔
- 可选的非交互式 / 一次性模式
- 提升对各 Linux 发行版的兼容性
- 可选的 HTML/JS 仪表盘用于远程监控
源代码
完整脚本已在 GitHub 上提供:
仓库:
VitaGuard 是一个轻量级的基于 Bash 的系统健康监控工具,能够实时提供 Linux 系统的 CPU、内存、磁盘使用情况、进程、日志、网络接口以及服务状态的洞察。
🛡️ VitaGuard
快速从终端监控 Linux 服务器的关键指标。
🛠️ 技术
- Bash 脚本
- 核心 Linux 工具:
top,free,df,ps,grep,awk,tail
🚀 功能
- 实时更新(每5秒刷新一次)
- 为 CPU、内存、磁盘提供颜色编码的进度条
- 显示运行时间和负载平均值
- 按 CPU 使用率排序的前 5 名进程(整洁表格)
- 来自 syslog 的最近关键错误(已过滤,最多 3 行)
- ASCII 艺术标题
🔍 工作原理
脚本在无限循环中运行,执行以下操作:
- 清除终端屏幕。
- 使用标准 Linux 实用工具收集系统指标。
- 渲染彩色进度条和警告。
- 显示进程、日志和服务信息。
- 在重复之前休眠配置的间隔(默认 5 秒)。
