上一篇
在运维和开发工作中,实时掌握服务器的运行状态至关重要。通过编写简单的Linux监控脚本,我们可以轻松监控CPU、内存、磁盘和网络等关键指标。本文将从零开始,教小白如何用Shell脚本实现基础但实用的系统监控功能。
手动使用top、free、df等命令查看系统状态虽然可行,但效率低且无法持续追踪。而一个自动化的系统资源监控脚本可以:
我们先创建一个名为 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 "===================================================" 请按以下步骤操作:
monitor.shchmod +x monitor.sh ./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脚本教程,你已经掌握了如何编写基础的服务器性能监控工具。随着经验积累,你可以进一步扩展功能,比如:
记住,自动化是运维的核心思想。一个小小的脚本,能为你节省大量时间和精力!
关键词提示:本文涵盖 Linux监控脚本、系统资源监控、Shell脚本教程 和 服务器性能监控 四大核心主题。
本文由主机测评网于2025-11-30发表在主机测评网_免费VPS_免费云服务器_免费独立服务器,如有疑问,请联系我们。
本文链接:https://vpshk.cn/2025111462.html