检测CPU,内存,磁盘使用率shell
检测CPU,内存,磁盘使用率shell
1.检测CPU,内存,磁盘使用率超过80%,则发送邮件告警
#!/bin/bash #当前主机ip HOST=$(ip a show eth0 | grep '\inet\b' | awk '{print $2}' | sed 's/\/.*//') #告警邮箱
MAIL=12345678@qq.com # 磁盘使用百分比阈值 DISK_USAGE_THRESHOLD=80 # CPU 使用百分比阈值 CPU_USAGE_THRESHOLD=80 # 内存使用百分比阈值 MEM_USAGE_THRESHOLD=80 # 获取当前时间 DATE=$(date +"%Y-%m-%d %H:%M:%S") # 检查磁盘使用率 DISK_USAGE=$(df -h | awk '{if ($NF=="/") {print $5}}' | sed 's/%//g') if [ $DISK_USAGE -ge $DISK_USAGE_THRESHOLD ]; then # 发送磁盘告警邮件 echo "当前主机为$HOST: 磁盘使用率高于 $DISK_USAGE_THRESHOLD%,请及时处理!" | mail -s "磁盘告警" $MAIL &>/dev/null fi # 检查 CPU 使用率 #CPU_USAGE=$(top -b -n 1 | grep -i "Cpu(s)" | awk '{printf "%d", $8}') CPU_USAGE=$(mpstat 1 1 | awk '/Average:/ {print 100-$NF}') if [ $CPU_USAGE -ge $CPU_USAGE_THRESHOLD ]; then # 发送 CPU 告警邮件 echo "当前主机为$HOST: CPU 使用率高于 $CPU_USAGE_THRESHOLD%,请及时处理!" | mail -s "CPU 告警" $MAIL &>/dev/null fi # 检查内存使用率 MEM_TOTAL=$(free -m | awk '{if ($1=="Mem:") {print $2}}') MEM_USED=$(free -m | awk '{if ($1=="Mem:") {print $3}}') MEM_USAGE=$((100 * $MEM_USED / $MEM_TOTAL)) if [ $MEM_USAGE -ge $MEM_USAGE_THRESHOLD ]; then # 发送内存告警邮件 echo "当前主机为$HOST: 内存使用率高于 $MEM_USAGE_THRESHOLD%,请及时处理!" | mail -s "内存告警" $MAIL &>/dev/null fi
2.配置邮箱
修改/etc/mail.rc文件
#配置邮件客户端及授权码
# 设置发件人地址 set from=123456@qq.com # 设置SMTP服务器和端口 set smtp=smtp.qq.com # 设置SMTP认证信息 set smtp-auth-user=123456@qq.com set smtp-auth-password=sadfasdafsdfas (授权码) # 如果需要,启用加密选项 #set smtp-use-starttls=yes set ssl-verify=ignore set nss-config-dir=/etc/pki/nssdb
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全网最简单!3分钟用满血DeepSeek R1开发一款AI智能客服,零代码轻松接入微信、公众号、小程
· .NET 10 首个预览版发布,跨平台开发与性能全面提升
· 《HelloGitHub》第 107 期
· 全程使用 AI 从 0 到 1 写了个小工具
· 从文本到图像:SSE 如何助力 AI 内容实时呈现?(Typescript篇)