VitaGuard:我的第一个实时 Linux 系统健康监控(使用 Bash)

发布: (2026年1月11日 GMT+8 00:56)
5 分钟阅读
原文: Dev.to

Source: Dev.to

VitaGuard 封面图:我的第一个实时 Linux 系统健康监视器(Bash)

脚本功能

VitaGuard 提供系统健康的持续更新概览:

资源使用

  • CPU 使用率并带有可视化进度条
  • 内存使用(已用 vs 总计)
  • 根文件系统的磁盘使用
  • 对高使用阈值的自动警告

系统信息

  • 系统运行时间和负载平均值
  • 活跃的网络接口

进程

  • 按 CPU 使用率排名前 5 的进程
  • 干净、易读的表格输出

日志

扫描最近的系统日志以查找关键问题,过滤错误,例如:

  • 内核问题
  • 服务失败
  • OOM 事件

减少常见日志噪声,仅显示最近的条目。

服务

检查常见服务的状态:

  • sshd
  • docker
  • nginx

所有这些在自动刷新循环中运行,每 5 秒更新一次,直至退出。

为什么我构建它

我想要一个轻量级的工具,能够镜像我在支持或排查 Linux 系统时实际查看的内容——CPU、内存、磁盘、进程以及关键日志条目——而不进行任何过度设计。目标如下:

  • 将原始系统指标转换为可读的输出
  • 构建可视化的进度条和基于颜色的警报
  • 过滤噪声日志,突出有用信号
  • 编写结构化、可读且安全的 Bash 脚本
  • 创建一个实用的工具,能够直接放到服务器上立即使用

挑战与解决方案

  • Progress bar colors 最初没有显示。通过使用 printf "%b" 使转义码生效,从而修复。
  • Syslog noise 添加了 grep -v 过滤器,以去除诸如 “workqueue” 和 “drm” 之类的垃圾信息。
  • Process table alignment 使用带固定宽度的 awk 来整齐对齐所有内容。

我学到的

  • topfreedf 等命令获取系统信息(CPU、内存、磁盘),并使用 awk 进行清理。
  • 使用终端颜色码让警告更醒目(绿色表示正常,红色表示异常)。
  • 编写不易出错的 Bash 脚本,通过添加检查、处理空结果并保持代码可读性来提升稳健性。

接下来

VitaGuard 的计划改进:

  • 可配置的刷新间隔
  • 可选的非交互式 / 一次性模式
  • 提升对各 Linux 发行版的兼容性
  • 可选的 HTML/JS 仪表盘用于远程监控

源代码

完整脚本已在 GitHub 上提供:

GitHub logo

仓库:
VitaGuard 是一个轻量级的基于 Bash 的系统健康监控工具,能够实时提供 Linux 系统的 CPU、内存、磁盘使用情况、进程、日志、网络接口以及服务状态的洞察。

🛡️ VitaGuard

快速从终端监控 Linux 服务器的关键指标。

VitaGuard 截图

🛠️ 技术

  • Bash 脚本
  • 核心 Linux 工具:top, free, df, ps, grep, awk, tail

🚀 功能

  • 实时更新(每5秒刷新一次)
  • 为 CPU、内存、磁盘提供颜色编码的进度条
  • 显示运行时间和负载平均值
  • 按 CPU 使用率排序的前 5 名进程(整洁表格)
  • 来自 syslog 的最近关键错误(已过滤,最多 3 行)
  • ASCII 艺术标题

🔍 工作原理

脚本在无限循环中运行,执行以下操作:

  1. 清除终端屏幕。
  2. 使用标准 Linux 实用工具收集系统指标。
  3. 渲染彩色进度条和警告。
  4. 显示进程、日志和服务信息。
  5. 在重复之前休眠配置的间隔(默认 5 秒)。
Back to Blog

相关文章

阅读更多 »

你好,我是新人。

嗨!我又回到 STEM 的领域了。我也喜欢学习能源系统、科学、技术、工程和数学。其中一个项目是…