在 Linux 服务器上制作一个单页自动刷新的系统监控脚本
小型服务器在同时运行 AI 服务、终端会话、备份任务和其他常驻程序时,偶尔可能出现响应迟缓,甚至完全失去连接。 服务器卡死后再查看日志,往往只能知道系统曾经发生过异常,却难以直观看到卡死前的内存、Swap、CPU 压力、I/O 压力和进程状态。 一种简单有效的办法,是制作一个固定的命令行监控脚本,在单个终端页面中集中显示关键状态,并每隔几秒自动刷新。 本文介绍一种不依赖额外监控平台的实现方式,适用于 Debian、Ubuntu、Arch Linux 等使用 systemd 的 Linux 系统。 监控内容 这个监控页面主要显示以下信息: 相比单独运行 top、free、ps 和 systemctl,单页监控更适合观察系统是否正在逐渐接近卡死状态。 创建固定脚本 以下示例将脚本安装到: 默认监控一个名为: 的 systemd 用户服务。 实际使用时,可以通过环境变量指定需要监控的服务名称。 在具有管理员权限的终端中执行: 这段安装命令会完成以下操作: 运行监控页面 假设需要监控的用户服务名为: 可以这样启动: 页面默认每两秒刷新一次。 退出时按: 修改刷新间隔 刷新间隔通过 SERVER_MONITOR_INTERVAL 环境变量控制。 每秒刷新一次: 每五秒刷新一次: 一般情况下,两秒刷新一次已经足够,同时不会产生明显额外负载。 查看一次静态快照 脚本也支持只输出一次当前状态,不进入自动刷新模式: 这种方式适合: 例如保存当前状态: 页面中的关键指标 Load average uptime …