编写shell脚本,监控cpu,内存,硬盘使用率,并进行qq邮件告警
时间: 2023-02-12 09:54:03 浏览: 163
以下是一个简单的shell脚本示例,可以监控cpu、内存、硬盘使用率,并通过qq邮件告警:
```
#!/bin/bash
# 获取系统信息
CPU=`top -bn1 | grep load | awk '{printf "%.2f%%\t\t", $(NF-2)}'`
MEM=`free -m | awk 'NR==2{printf "%.2f%%\t\t", $3*100/$2 }'`
DISK=`df -h | awk '$NF=="/"{printf "%s\t\t", $5}'`
# 发送告警邮件
echo -e "CPU使用率: $CPU\n内存使用率: $MEM\n硬盘使用率: $DISK" | mail -s "系统告警" xxx@qq.com
```
需要注意的是,上述脚本需要在服务器上安装并配置好mail命令,以便能够发送qq邮件告警。
另外, 这个脚本只是一个简单的示例,最好是根据实际需求进行修改。
相关问题
shell脚本监测CPU使用率,当CPU空闲的时候发邮件给834819659@qq.com
可以使用以下的 shell 脚本来监测 CPU 使用率,并在 CPU 空闲时发送邮件给 834819659@qq.com:
```
#!/bin/bash
# 设置阈值,当 CPU 使用率低于该值时发送邮件
THRESHOLD=10
# 获取当前 CPU 使用率
CPU_USAGE=$(top -b -n1 | grep "Cpu(s)" | awk '{print $2 + $4}')
# 判断 CPU 使用率是否低于阈值
if [ $(echo "$CPU_USAGE < $THRESHOLD" | bc) -eq 1 ]; then
# CPU 空闲,发送邮件
echo "CPU 空闲,发送邮件"
echo "This is the body of the email" | mail -s "CPU 空闲" 834819659@qq.com
else
# CPU 使用率高,不发送邮件
echo "CPU 使用率高,不发送邮件"
fi
```
该脚本使用 top 命令获取当前 CPU 使用率,并使用 awk 命令提取出 CPU 使用率的数值。然后,使用 bc 命令判断 CPU 使用率是否低于阈值。如果低于阈值,则发送邮件给 834819659@qq.com。如果高于阈值,则不发送邮件。
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 使用率。
阅读全文