在 CentOS 系统中,cpustat
命令是 sysstat
包的一部分,用于显示 CPU 使用情况的统计信息。如果你想要设置 CPU 使用率的阈值报警,可以通过编写一个简单的脚本来实现。
以下是一个基本的脚本示例,该脚本会定期检查 CPU 使用率,并在使用率超过设定的阈值时发送报警:
#!/bin/bash
# 设置CPU使用率阈值(百分比)
THRESHOLD=80
# 检查间隔时间(秒)
INTERVAL=5
# 获取CPU使用率
get_cpu_usage() {
cpu_usage=$(mpstat 1 1 | awk '/Average:/ {print $13}' | cut -d'.' -f1)
echo $cpu_usage
}
# 主循环
while true; do
cpu_usage=$(get_cpu_usage)
echo "Current CPU usage: $cpu_usage%"
if [ "$cpu_usage" -gt "$THRESHOLD" ]; then
# 发送报警,这里使用邮件作为示例
echo "CPU usage is above threshold: $cpu_usage%" | mail -s "CPU Usage Alert" your_email@example.com
fi
sleep $INTERVAL
done
安装 sysstat
包(如果尚未安装):
sudo yum install sysstat
创建脚本文件:
将上述脚本保存为一个文件,例如 cpu_monitor.sh
。
设置阈值和间隔时间:
修改脚本中的 THRESHOLD
和 INTERVAL
变量,以适应你的需求。
发送报警邮件:
确保你的系统配置了邮件服务(如 postfix
或 sendmail
),并且脚本中的 your_email@example.com
替换为你实际的邮箱地址。
赋予执行权限:
chmod +x cpu_monitor.sh
运行脚本:
./cpu_monitor.sh
nohup
或 systemd
服务来实现。systemd
服务,可以创建一个服务文件并将其放置在 /etc/systemd/system/
目录下。systemd
创建服务示例:创建服务文件:
sudo nano /etc/systemd/system/cpu_monitor.service
添加以下内容:
[Unit]
Description=CPU Usage Monitor
[Service]
ExecStart=/path/to/cpu_monitor.sh
Restart=always
User=nobody
[Install]
WantedBy=multi-user.target
重新加载 systemd
配置:
sudo systemctl daemon-reload
启动服务:
sudo systemctl start cpu_monitor.service
设置开机自启动:
sudo systemctl enable cpu_monitor.service
通过这种方式,你可以实现 CPU 使用率的阈值报警,并确保脚本在系统启动时自动运行。