Linux下 监控磁盘 内存 cpu脚本 以及发送邮件流程

https://blog.csdn.net/thxxin/article/details/80276015

 

1,安装 mailx

[root@node-1 opt]# yum install mailx

2,编辑配置文件

[root@node-1 opt]# vim /etc/mail.rc #添加如下内容

set from=xxxx@163.com

set smtp=smtp.163.com

set smtp-auth-user=xx@163.com

set smtp-auth-password=xxx

set smtp-auth=login

 


---说明 建议用163邮箱 因为qq邮箱 smtp会有各种问题

from:对方收到邮件时显示的发件人

smtp:指定第三方发邮件的smtp服务器地址

set smtp-auth-user:第三方发邮件的用户名

set smtp-auth-password:用户名对应的密码,有些邮箱填的是授权码

smtp-auth:SMTP的认证方式,默认是login,也可以改成CRAM-MD5或PLAIN方式

 


3,编写 检测和运行脚本 monitor.sh
#!/bin/bash
#获取cpu使用率
cpuUsage=`top -n 1 | awk -F '[ %]+' 'NR==3 {print $2}'`
#获取磁盘使用率
data_name="/dev/vda1"
diskUsage=`df -h | grep $data_name | awk -F '[ %]+' '{print $5}'`
logFile=/tmp/monitor.log
#获取内存情况
mem_total=`free -m | awk -F '[ :]+' 'NR==2{print $2}'`
mem_used=`free -m | awk -F '[ :]+' 'NR==3{print $3}'`
#统计内存使用率
mem_used_persent=`awk 'BEGIN{printf "%.0f\n",('$mem_used'/'$mem_total')*100}'`
#获取报警时间
now_time=`date '+%F %T'`
function send_mail(){
mail -s "监控报警" xxxx@qq.com < /tmp/monitor.log
}
function check(){
if [[ "$cpuUsage" > 80 ]] || [[ "$diskUsage" > 80 ]] || [[ "$mem_used_persent" > 80 ]];then
echo "报警时间:${now_time}" > $logFile
echo "CPU使用率:${cpuUsage}% --> 磁盘使用率:${diskUsage}% --> 内存使用率:${mem_used_persent}%" >> $logFile
send_mail
fi
}
function main(){
check
}
main


4,运行脚本

[root@node-1 opt]# sh monitor.sh

检查是否收到邮件

 

5、最后,可以设置一个cron计划任务,让该脚本每隔半小时运行一次

[root@node-1 opt]# crontab -e

在cron里添加下面一行即可 

*/30 * * * * /opt/disk_check.sh

posted on   四海骄阳  阅读(278)  评论(0编辑  收藏  举报

编辑推荐:
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 一个奇形怪状的面试题:Bean中的CHM要不要加volatile?
· [.NET]调用本地 Deepseek 模型
· 一个费力不讨好的项目,让我损失了近一半的绩效!
阅读排行:
· 全网最简单!3分钟用满血DeepSeek R1开发一款AI智能客服,零代码轻松接入微信、公众号、小程
· .NET 10 首个预览版发布,跨平台开发与性能全面提升
· 《HelloGitHub》第 107 期
· 从文本到图像:SSE 如何助力 AI 内容实时呈现?(Typescript篇)
· 全程使用 AI 从 0 到 1 写了个小工具
历史上的今天:
2019-05-06 路由器如何设置端口映射
2019-05-06 教你路由器端口映射设置方法
2019-05-06 什么叫DMZ区?DMZ区有什么作用?应该怎样构建DMZ
2019-05-06 运维之思科篇——NAT基础配置
2019-05-06 NAT地址转换常用命令详解
2019-05-06 NAT(地址转换技术)详解
2019-05-06 内网每一台电脑的外网ip是一样吗

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5
点击右上角即可分享
微信分享提示

喜欢请打赏

扫描二维码打赏

了解更多