20 系统监控脚本实战
在本篇中,我们将继续探索 Shell脚本
的强大功能,通过编写一个简单的系统监控脚本,使我们能够实时监控系统的关键参数,例如 CPU 使用率、内存使用情况和磁盘使用情况。
脚本目的
系统监控是确保服务器稳定运行的重要环节。本脚本将自动收集并报告一些重要的系统性能指标,帮助我们快速识别潜在的系统问题。
实战案例背景
在上一篇教程中,我们学习了如何编写一个自动化备份脚本,确保我们的数据得以安全保存。而在进行备份之前,了解服务器的健康状态是至关重要的。因此,本篇将通过监控脚本为我们的自动化备份提供数据支持。
脚本功能概述
我们的系统监控脚本将具备以下功能:
- 显示当前的 CPU 使用率
- 显示当前的内存使用情况
- 显示磁盘使用情况
- 报告在关键阈值下的系统状况
实现步骤
第一步:创建脚本文件
我们首先需要创建一个 shell
脚本文件。例如,我们可以命名为 monitor.sh
。
touch monitor.sh
chmod +x monitor.sh
第二步:编写监控脚本
接下来,我们用文本编辑器打开 monitor.sh
文件,并编写以下代码:
#!/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
第三步:运行脚本并查看结果
保存文件后,可以通过以下命令运行脚本:
./monitor.sh
你将看到类似下面的输出:
[2023-10-03 12:30:04] 系统监控脚本
CPU 使用率: 15.0%
内存使用率: 42.5%
磁盘使用率: 30%
如果 CPU 或内存的使用率超过设定的阈值,将会显示相应的警告信息。
总结
在这篇教程中,我们编写了一个基本的系统监控脚本,通过监测关键的系统性能指标来帮助我们维护服务器的健康状态。接下来,你可以根据需求进一步扩展此脚本,例如添加日志记录功能或通过电子邮件发送警报等功能。
在下一篇教程中,我们将学习如何编写一个 批量处理脚本
,使我们能方便地执行多个任务,提高工作效率。希望你能继续关注!