shell脚本10秒一次监测CPU使用率,当CPU不空闲继续检测,当CPU超过3次检测都是空闲时发送邮件给834819659@qq.com
时间: 2023-05-17 13:06:37 浏览: 227
可以使用以下shell脚本实现:
```bash
#!/bin/bash
# 设置监测间隔为10秒
interval=10
# 设置连续空闲次数
idle_count=0
# 设置最大连续空闲次数
max_idle_count=3
# 设置邮件接收地址
email=834819659@qq.com
while true; do
# 获取CPU使用率
cpu_usage=$(top -bn1 | grep "Cpu(s)" | awk '{print $2 + $4}')
# 判断CPU是否空闲
if (( $(echo "$cpu_usage < 100" | bc -l) )); then
idle_count=$((idle_count+1))
else
idle_count=0
fi
# 判断是否连续空闲超过最大次数
if (( idle_count >= max_idle_count )); then
# 发送邮件
echo "CPU已连续空闲${max_idle_count}次,可能出现问题,请及时处理!" | mail -s "CPU空闲警告" $email
# 重置计数器
idle_count=0
fi
# 等待一段时间后再次检测
sleep $interval
done
```
这个脚本会每10秒检测一次CPU使用率,如果连续3次都是空闲状态,就会发送一封邮件到指定的邮箱地址。
相关问题
shell脚本10秒一次监测CPU使用率,当CPU不空闲继续检测,当CPU空闲的时候发邮件给834819659@qq.com
可以使用以下的 shell 脚本来实现:
```
#!/bin/bash
while true
do
# 获取当前 CPU 使用率
cpu_usage=$(top -bn1 | grep "Cpu(s)" | awk '{print $2 + $4}')
# 如果 CPU 使用率大于 90%,则继续监测
if (( $(echo "$cpu_usage > 90" | bc -l) )); then
sleep 10
else
# 如果 CPU 使用率小于等于 90%,则发送邮件
echo "CPU 使用率已经降低,发送邮件给 834819659@qq.com"
echo "CPU 使用率:$cpu_usage" | mail -s "CPU 使用率降低" 834819659@qq.com
break
fi
done
```
这个脚本会每 10 秒钟检测一次 CPU 使用率,如果 CPU 使用率大于 90%,则继续监测,如果 CPU 使用率小于等于 90%,则发送一封邮件给 834819659@qq.com,邮件的主题是 "CPU 使用率降低",邮件内容包含当前的 CPU 使用率。
shell脚本每隔20秒钟检测CPU使用率,如果连续5次都是空闲时发送邮件给834819659@qq.com并关机,如果不空闲就继续检测
可以使用以下的 shell 脚本来实现:
```shell
#!/bin/bash
# 设置检测的次数和间隔时间
count=5
interval=20
# 循环检测 CPU 使用率
for ((i=1; i<=$count; i++))
do
# 获取 CPU 使用率
cpu_usage=$(top -b -n 1 | grep "Cpu(s)" | awk '{print $2 + $4}')
# 判断 CPU 使用率是否小于等于 10%
if (( $(echo "$cpu_usage <= 10" | bc -l) ))
then
# 发送邮件
echo "CPU 使用率连续 $count 次小于等于 10%,即将关机!" | mail -s "CPU 使用率过低" 834819659@qq.com
# 关机
shutdown -h now
# 退出脚本
exit 0
fi
# 等待一段时间后再次检测
sleep $interval
done
# 如果循环结束后 CPU 使用率仍然高于 10%,则输出提示信息
echo "CPU 使用率连续 $count 次大于 10%,不会关机。"
```
这个脚本会每隔 20 秒钟检测一次 CPU 使用率,如果连续 5 次都小于等于 10%,就会发送邮件并关机。如果不满足条件,就会继续检测。
阅读全文