返回
如何使用 Shell 脚本通过电子邮件监控进程资源使用率?
Linux
2024-03-08 07:26:12
使用 Shell 脚本通过电子邮件监控进程资源使用率
简介
监控 IT 系统的性能和资源使用至关重要,以确保其平稳运行和及时响应任何潜在问题。在本文中,我们将探讨如何编写一个 Shell 脚本来监视进程的资源使用情况,并根据预定义的阈值通过电子邮件发送警报。
Shell 脚本概述
Shell 脚本是一种强大的工具,可用于执行一系列命令和任务。它们常用于系统管理和自动化,包括进程监控和警报。
脚本功能
我们的 Shell 脚本将实现以下功能:
- 持续监控指定进程的 CPU 和内存使用率。
- 比较使用率与预定义的阈值。
- 当使用率超过阈值时,通过电子邮件发送警报。
脚本实现
#!/bin/bash
# 进程名称
PROCESS_NAME="nginx"
# 监控时间间隔(秒)
INTERVAL=10
while true; do
# 获取进程资源使用情况
PROC_STATUS=$(ps -p $(pgrep $PROCESS_NAME) -o %cpu,%mem)
# 检查资源使用率是否超过阈值
if [[ $PROC_STATUS =~ ^[0-9]+\.[0-9]+,[0-9]+\.[0-9]+$ ]]; then
CPU_USAGE=$(echo $PROC_STATUS | cut -d ',' -f 1)
MEM_USAGE=$(echo $PROC_STATUS | cut -d ',' -f 2)
# 阈值
CPU_THRESHOLD=80
MEM_THRESHOLD=80
if (( $(echo "$CPU_USAGE > $CPU_THRESHOLD" | bc -l) )) || (( $(echo "$MEM_USAGE > $MEM_THRESHOLD" | bc -l) )); then
# 资源使用率超过阈值,发送邮件
sendmail -f sender@example.com -t recipient@example.com <<EOF
Subject: $PROCESS_NAME 资源使用率告警
进程 $PROCESS_NAME 的资源使用率已超过阈值:
* CPU 使用率:$CPU_USAGE%
* 内存使用率:$MEM_USAGE%
请及时采取措施。
--
系统监控脚本
EOF
fi
fi
sleep $INTERVAL
done
配置脚本
为了使用此脚本,请根据以下步骤进行配置:
- 替换
PROCESS_NAME
为要监控的进程名称。 - 调整
CPU_THRESHOLD
和MEM_THRESHOLD
以匹配您的资源使用要求。 - 替换
sender@example.com
和recipient@example.com
为您的发件人和收件人电子邮件地址。 - 将脚本保存为可执行文件并将其放置在您选择的位置。
运行脚本
使用以下命令运行脚本:
./scriptname.sh
常见问题解答
-
如何自定义阈值?
您可以在脚本中修改CPU_THRESHOLD
和MEM_THRESHOLD
的值。 -
我可以在脚本中监控多个进程吗?
可以,只需在PROCESS_NAME
变量中列出进程名称列表,以逗号分隔。 -
如何自动化脚本的运行?
可以使用 crontab 或 systemd 定时任务来定期运行脚本。 -
我如何获取脚本中进程的资源使用率?
脚本使用ps
命令获取进程状态,然后从输出中解析 CPU 和内存使用率。 -
如何在脚本中发送电子邮件?
脚本使用sendmail
命令发送电子邮件,该命令内置于大多数 Linux 发行版中。
结论
通过使用本文中的 Shell 脚本,您可以主动监控进程的资源使用情况,并通过电子邮件及时收到警报,以快速应对任何潜在问题。通过自定义脚本并将其集成到您的系统管理例程中,您可以确保您的 IT 系统持续高效运行。