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

Linux监控脚本编写(手把手教你用Shell脚本实时监控服务器性能)

在运维和开发工作中,实时掌握服务器的运行状态至关重要。通过编写简单的Linux监控脚本,我们可以轻松监控CPU、内存、磁盘和网络等关键指标。本文将从零开始,教小白如何用Shell脚本实现基础但实用的系统监控功能。

Linux监控脚本编写(手把手教你用Shell脚本实时监控服务器性能) Linux监控脚本 系统资源监控 Shell脚本教程 服务器性能监控 第1张

一、为什么需要Linux监控脚本?

手动使用topfreedf等命令查看系统状态虽然可行,但效率低且无法持续追踪。而一个自动化的系统资源监控脚本可以:

  • 定时采集系统数据
  • 记录历史性能趋势
  • 在资源异常时发出警报
  • 节省人工巡检时间

二、编写第一个监控脚本

我们先创建一个名为 monitor.sh 的脚本文件:

#!/bin/bash# 脚本名称:monitor.sh# 功能:监控CPU、内存、磁盘使用率echo "================ 系统监控报告 $(date) ================"# 监控CPU使用率(取1秒内的平均值)cpu_usage=$(top -bn1 | grep "%Cpu(s)" | awk '{print $2}' | cut -d'%' -f1)echo "CPU 使用率: ${cpu_usage}%"# 监控内存使用率mem_info=$(free | grep Mem)total_mem=$(echo $mem_info | awk '{print $2}')used_mem=$(echo $mem_info | awk '{print $3}')mem_usage=$(awk "BEGIN {printf \"%.2f\", ($used_mem/$total_mem)*100}")echo "内存使用率: ${mem_usage}%"# 监控根分区磁盘使用率disk_usage=$(df / | tail -1 | awk '{print $5}' | tr -d '%')echo "磁盘使用率(/): ${disk_usage}%"# 判断是否超过阈值(例如80%)if (( $(echo "$cpu_usage > 80" | bc -l) )) || \   (( $(echo "$mem_usage > 80" | bc -l) )) || \   (( $disk_usage > 80 )); then    echo "【警告】某项资源使用率已超过80%!"fiecho "==================================================="  

三、如何运行这个脚本?

请按以下步骤操作:

  1. 将上述代码保存为 monitor.sh
  2. 赋予执行权限:
    chmod +x monitor.sh
  3. 运行脚本:
    ./monitor.sh

你将看到类似如下的输出:

================ 系统监控报告 Wed Jun 12 10:30:45 CST 2024 ================CPU 使用率: 12.3内存使用率: 45.67%磁盘使用率(/): 65===================================================  

四、进阶:定时自动监控

为了让脚本每5分钟自动运行一次,我们可以使用 cron 定时任务。

编辑 crontab:

crontab -e  

添加以下行(假设脚本位于 /home/user/monitor.sh):

*/5 * * * * /home/user/monitor.sh >> /var/log/system_monitor.log 2>&1  

这样,监控结果会自动追加到日志文件中,方便后续分析。

五、总结

通过这个简单的Shell脚本教程,你已经掌握了如何编写基础的服务器性能监控工具。随着经验积累,你可以进一步扩展功能,比如:

  • 发送邮件告警
  • 监控特定进程
  • 生成可视化图表
  • 集成到Prometheus等专业监控平台

记住,自动化是运维的核心思想。一个小小的脚本,能为你节省大量时间和精力!

关键词提示:本文涵盖 Linux监控脚本系统资源监控Shell脚本教程服务器性能监控 四大核心主题。