linux 检查文件内容 发送邮件,Linux下 监控磁盘 内存 cpu脚本 以及发送邮件流程详解...

1,安装 mailx

[[email protected] opt]# yum install mailx

2,编辑配置文件

[[email protected] opt]# vim /etc/mail.rc #添加如下内容

set smtp=smtp.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 "监控报警" [email protected] < /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,运行脚本

shmonitor.sh

检查是否收到邮件

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

[[email protected] opt]# crontab -e

在cron里添加下面一行即可

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值