在日常的 Linux 系统管理中,我们经常需要持续监控某些系统指标,比如 CPU 使用率、内存占用、磁盘空间或某个服务是否正常运行。这时候,使用 Linux Shell 循环监控 就是一个非常实用且高效的方法。
本文将从零开始,带你一步步编写一个简单的 Shell 脚本来实现循环监控功能,即使你是刚接触 Linux 的小白,也能轻松上手!
Shell 循环监控 是指利用 Shell 脚本中的循环结构(如 while 或 for 循环),定期执行某些命令或检查某些条件,并根据结果做出响应(例如记录日志、发送通知等)。这种技术广泛应用于 系统资源监控 和 服务状态检测 场景。
确保你的 Linux 系统已安装 Bash(大多数发行版默认已安装),并打开终端。你可以通过以下命令确认:
bash --version
我们来写一个脚本,每 5 秒检查一次根分区(/)的磁盘使用率,如果超过 80%,就打印警告信息。
#!/bin/bash# 设置监控阈值(80%)THRESHOLD=80# 无限循环while truedo # 获取根分区的使用百分比(去掉 % 符号) USAGE=$(df / | awk 'NR==2 {print $5}' | sed 's/%//') echo "当前磁盘使用率: ${USAGE}%" # 判断是否超过阈值 if [ $USAGE -gt $THRESHOLD ]; then echo "[警告] 磁盘使用率已超过 ${THRESHOLD}%!" # 这里可以添加发送邮件、写日志等操作 fi # 每隔5秒检查一次 sleep 5done 将上述代码保存为 disk_monitor.sh,然后赋予执行权限:
chmod +x disk_monitor.sh
运行脚本:
./disk_monitor.sh
你会看到终端每隔 5 秒输出一次当前磁盘使用情况。当使用率过高时,会显示警告信息。
除了资源监控,我们还可以监控某个服务(如 nginx)是否在运行。下面是一个简单示例:
#!/bin/bashSERVICE="nginx"while truedo if systemctl is-active --quiet $SERVICE; then echo "[$(date)] $SERVICE 正在运行" else echo "[$(date)] [严重] $SERVICE 已停止!" # 可在此处添加重启命令:systemctl restart $SERVICE fi sleep 10done
这个脚本每 10 秒检查一次 nginx 服务状态,并记录时间戳。你可以根据实际需求替换服务名称。
sleep 控制检查频率。./disk_monitor.sh >> /var/log/monitor.log 2>&1nohup 或 screen 让脚本在后台持续运行。通过本文,你已经学会了如何使用 Shell脚本监控 系统关键指标。无论是磁盘、内存还是服务状态,只要结合循环和条件判断,就能构建出简单而强大的监控工具。这些技能是每个 Linux 用户迈向自动化运维的重要一步。
赶快动手试试吧!你也可以将这些脚本加入 crontab 或配合其他工具(如 Prometheus、Zabbix)打造更专业的监控体系。
关键词提示:本文涵盖 Linux Shell循环监控、Shell脚本监控、系统资源监控 和 Linux自动化脚本 四大核心概念。
本文由主机测评网于2025-11-26发表在主机测评网_免费VPS_免费云服务器_免费独立服务器,如有疑问,请联系我们。
本文链接:https://vpshk.cn/202511776.html