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

Linux Shell循环监控硬件(从零开始编写自动检测脚本)

在 Linux 系统中,我们经常需要监控硬件状态,比如 CPU 使用率、内存占用、磁盘空间等。通过 Linux Shell 循环,我们可以轻松编写自动化脚本来持续检测这些信息。本教程将手把手教你如何使用 Shell 脚本配合循环结构,实现对系统硬件的实时监控,即使是编程小白也能轻松上手!

Linux Shell循环监控硬件(从零开始编写自动检测脚本) Shell循环 硬件监控脚本 Shell脚本教程 系统资源检测 第1张

一、为什么用 Shell 循环监控硬件?

使用 Shell 脚本教程 中的循环结构(如 whilefor),我们可以让脚本每隔一段时间自动读取一次硬件状态,无需手动重复执行命令。这对于服务器运维、性能调优或故障排查非常实用。

二、基础准备:你需要知道的命令

在编写脚本前,先了解几个常用命令:

  • top -bn1:获取一次 CPU 和内存快照
  • free -m:查看内存使用情况(单位 MB)
  • df -h:查看磁盘空间使用情况
  • uptime:查看系统负载

三、编写你的第一个硬件监控脚本

下面是一个简单的 Shell 脚本,它每 5 秒输出一次 CPU、内存和磁盘使用情况。我们将使用 while true 实现无限循环,并用 sleep 控制间隔时间。

#!/bin/bash# 硬件监控脚本 - 每5秒刷新一次while truedo    echo "==================== $(date) ===================="    echo "--- CPU & Memory ---"    top -bn1 | grep "%Cpu\|KiB Mem"    echo "--- Disk Usage ---"    df -h | grep -E '^/dev/'    echo ""    sleep 5done

将上述代码保存为 monitor.sh,然后在终端中运行:

chmod +x monitor.sh./monitor.sh

你将看到类似如下输出(每5秒更新一次):

==================== Wed Jun 12 10:30:00 CST 2024 ====================--- CPU & Memory ---%Cpu(s):  2.3 us,  0.7 sy,  0.0 ni, 96.8 id,  0.2 wa,  0.0 hi,  0.0 si,  0.0 stKiB Mem : 16384560 total,  2345672 free,  8765432 used,  5273456 buff/cache--- Disk Usage ---/dev/sda1        50G   20G   30G  40% //dev/sdb1       200G  120G   80G  60% /data

四、进阶技巧:添加报警功能

我们还可以在脚本中加入判断逻辑。例如,当磁盘使用率超过 90% 时,发出警告:

# 检查根分区使用率usage=$(df / | awk 'NR==2 {print $5}' | sed 's/%//')if [ "$usage" -gt 90 ]; then    echo "[ALERT] 根分区使用率已超过 90%!当前: ${usage}%"fi

将这段代码插入到之前的循环中,就能实现简单的 系统资源检测 报警功能。

五、总结

通过本教程,你已经学会了如何利用 Linux Shell 循环 编写一个简单的硬件监控脚本。这不仅提升了你的 Shell 编程能力,也为日常运维打下了坚实基础。你可以继续扩展脚本功能,比如记录日志、发送邮件通知,甚至集成到 Web 界面中。

记住:自动化是运维的第一步,而 Shell 脚本是你最强大的工具之一!