当前位置:首页 > 服务器技术 > 正文

Linux Shell监控配置指南(从零开始搭建你的系统监控脚本)

在运维和系统管理中,实时了解服务器的运行状态至关重要。通过 Linux Shell 脚本,我们可以轻松实现对 CPU、内存、磁盘等关键资源的监控。本文将手把手教你如何编写一个简单的 Shell 监控脚本,即使你是初学者也能快速上手!

Linux Shell监控配置指南(从零开始搭建你的系统监控脚本) Shell监控 系统性能监控 Shell脚本教程 服务器健康检查 第1张

一、为什么需要 Shell 监控?

使用 Linux Shell监控 可以帮助你:

  • 实时掌握服务器资源使用情况
  • 及时发现异常(如 CPU 占用过高、磁盘快满等)
  • 自动化告警,减少人工巡检成本
  • 为后续的 服务器健康检查 提供数据支持

二、准备工作

确保你的 Linux 系统已安装以下基础工具(大多数发行版默认已安装):

  • bash:Shell 解释器
  • topfreedf:系统信息命令
  • mail(可选):用于发送邮件告警

三、编写基础监控脚本

下面是一个简单的监控脚本示例,它会检查 CPU 使用率、内存使用率和磁盘空间,并在超过阈值时输出警告。

#!/bin/bash# 设置阈值CPU_THRESHOLD=80MEM_THRESHOLD=85DISK_THRESHOLD=90# 获取 CPU 使用率(排除空闲时间)CPU_USAGE=$(top -bn1 | grep "Cpu(s)" | awk '{print 100 - $8}')# 获取内存使用率MEM_USAGE=$(free | awk 'NR==2{printf "%.2f", $3*100/$2 }')# 获取根分区磁盘使用率DISK_USAGE=$(df / | awk 'NR==2{print $5}' | tr -d '%')# 输出当前状态echo "$(date): CPU=${CPU_USAGE}%, MEM=${MEM_USAGE}%, DISK=${DISK_USAGE}%"# 检查是否超过阈值if (( $(echo "$CPU_USAGE > $CPU_THRESHOLD" | bc -l) )); then  echo "[警告] CPU 使用率过高: ${CPU_USAGE}%"fiif (( $(echo "$MEM_USAGE > $MEM_THRESHOLD" | bc -l) )); then  echo "[警告] 内存使用率过高: ${MEM_USAGE}%"fiif [ "$DISK_USAGE" -gt "$DISK_THRESHOLD" ]; then  echo "[警告] 磁盘空间不足: ${DISK_USAGE}%"fi  

将上述代码保存为 monitor.sh,然后赋予执行权限:

chmod +x monitor.sh  

运行脚本:

./monitor.sh  

四、定时自动运行(使用 cron)

为了让监控脚本定期执行,我们可以使用 cron 定时任务。

编辑当前用户的 crontab:

crontab -e  

添加一行,每 5 分钟运行一次脚本并将结果追加到日志文件:

*/5 * * * * /path/to/monitor.sh >> /var/log/system_monitor.log 2>&1  

这样你就实现了基本的 系统性能监控 自动化。

五、进阶建议

当你熟悉了基础脚本后,可以尝试:

  • 将警告信息通过邮件或企业微信/钉钉机器人发送
  • 记录历史数据并生成图表(结合 Python 或 Grafana)
  • 监控特定进程或服务状态

六、总结

通过这个简单的 Shell脚本教程,你已经掌握了如何用 Shell 实现基础的 Linux 系统监控。这不仅提升了你的运维效率,也为构建更复杂的监控体系打下了坚实基础。记住,好的监控是保障服务稳定的第一道防线!

现在就动手试试吧,让你的服务器“开口说话”!