linux服务器监控CPU:CPU总使用率超过90%自杀进程
·
第一步: 做好监控CPU的脚本文件:
#!/bin/bash
## 设置CPU使用率阈值
CPU_THRESHOLD=90
while true;do
# 获取总的CPU使用率
CPU_USAGE=$(top -b -n1 | grep "Cpu(s)" | awk '{print $2}') #这里主要不要加$4(系统占用率)
#log
logfile=/var/log/cup_monitor_by_weifeng.logq
# 检查CPU使用率是否超过阈值
if (( $(echo "$CPU_USAGE > $CPU_THRESHOLD" | bc -l) )); then
# 获取CPU使用率最高的进程的PID
TOP_PID=$(top -b -o %CPU -n1 | sed -n '8p' | awk '{print $1}')
# 杀死该进程
kill -9 $TOP_PID
echo "---------------------`date`-----------------:" >> $logfile
echo "Killed process $TOP_PID due to high CPU usage: $CPU_USAGE%" >> $logfile
fi
sleep 10
done
第二步:基于 systemd方式实现,创建和配置systemd:
在/etc/systemd/system/目录下创建 和配置systemd 服务文件,示例如下,这里配置ExecStart参数即可,systemd 服务文件更多配置和命令使用可参考:systemd服务
root@ubuntu-Precision-7920-Tower:~# cat /etc/systemd/system/watch_monitor_cpu.service
[Unit]
Description=Monitor CPU Usage and Kill High CPU Usage Processes
After=network.target
[Service]
ExecStart=/home/weifeng_ma/04.Scripts/monitor_cup_and_deal.sh
Restart=always
StandardOutput=append:/var/log/monitor_cpu.log
StandardError=append:/var/log/monitor_cpu.log
[Install]
WantedBy=multi-user.target
第三步:启动,开自机启动,查看服务状态,服务状态正常即成功:
#重载所有修改过的配置文件
sudo systemctl daemon-reload
#开机自启服务
sudo systemctl enable watch_monitor_cpu.service
#启动服务
sudo systemctl start watch_monitor_cpu.service
#启动服务
sudo systemctl restart watch_monitor_cpu.service
#查看服务状态
sudo systemctl status watch_monitor_cpu.service
#停止服务状态
systemctl stop watch_monitor_cpu.service
更多推荐


所有评论(0)