20 系统监控脚本实战

在本篇中,我们将继续探索 Shell脚本 的强大功能,通过编写一个简单的系统监控脚本,使我们能够实时监控系统的关键参数,例如 CPU 使用率、内存使用情况和磁盘使用情况。

脚本目的

系统监控是确保服务器稳定运行的重要环节。本脚本将自动收集并报告一些重要的系统性能指标,帮助我们快速识别潜在的系统问题。

实战案例背景

在上一篇教程中,我们学习了如何编写一个自动化备份脚本,确保我们的数据得以安全保存。而在进行备份之前,了解服务器的健康状态是至关重要的。因此,本篇将通过监控脚本为我们的自动化备份提供数据支持。

脚本功能概述

我们的系统监控脚本将具备以下功能:

  • 显示当前的 CPU 使用率
  • 显示当前的内存使用情况
  • 显示磁盘使用情况
  • 报告在关键阈值下的系统状况

实现步骤

第一步:创建脚本文件

我们首先需要创建一个 shell 脚本文件。例如,我们可以命名为 monitor.sh

1
2
touch monitor.sh
chmod +x monitor.sh

第二步:编写监控脚本

接下来,我们用文本编辑器打开 monitor.sh 文件,并编写以下代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
#!/bin/bash

# 脚本名称
SCRIPT_NAME="系统监控脚本"
# 日期和时间
DATE=$(date +"%Y-%m-%d %H:%M:%S")

# CPU 使用情况
CPU_USAGE=$(top -bn1 | grep "Cpu(s)" | sed "s/.*, *\([0-9.]*\)%* id.*/\1/" | awk '{print 100 - $1}')
# 内存使用情况
MEMORY_USAGE=$(free | grep Mem | awk '{print $3/$2 * 100.0}')
# 磁盘使用情况
DISK_USAGE=$(df -h | grep '^/dev/' | awk '{ print $5 }')

# 输出监控结果
echo "[$DATE] $SCRIPT_NAME"
echo "CPU 使用率: ${CPU_USAGE}%"
echo "内存使用率: ${MEMORY_USAGE}%"
echo "磁盘使用率: ${DISK_USAGE}"

# 设置阈值
CPU_THRESHOLD=80
MEMORY_THRESHOLD=80

# 根据阈值进行告警
if (( $(echo "$CPU_USAGE > $CPU_THRESHOLD" | bc -l) )); then
echo "警告: CPU 使用率超过阈值 ${CPU_THRESHOLD}%!"
fi

if (( $(echo "$MEMORY_USAGE > $MEMORY_THRESHOLD" | bc -l) )); then
echo "警告: 内存使用率超过阈值 ${MEMORY_THRESHOLD}%!"
fi

第三步:运行脚本并查看结果

保存文件后,可以通过以下命令运行脚本:

1
./monitor.sh

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

1
2
3
4
[2023-10-03 12:30:04] 系统监控脚本
CPU 使用率: 15.0%
内存使用率: 42.5%
磁盘使用率: 30%

如果 CPU 或内存的使用率超过设定的阈值,将会显示相应的警告信息。

总结

在这篇教程中,我们编写了一个基本的系统监控脚本,通过监测关键的系统性能指标来帮助我们维护服务器的健康状态。接下来,你可以根据需求进一步扩展此脚本,例如添加日志记录功能或通过电子邮件发送警报等功能。

在下一篇教程中,我们将学习如何编写一个 批量处理脚本,使我们能方便地执行多个任务,提高工作效率。希望你能继续关注!

作者

AI免费学习网(郭震)

发布于

2024-08-15

更新于

2024-08-16

许可协议

分享转发

交流

更多教程加公众号

更多教程加公众号

加入星球获取PDF

加入星球获取PDF

打卡评论