shell脚本-监控及邮件提醒

Posted DragonFire

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了shell脚本-监控及邮件提醒相关的知识,希望对你有一定的参考价值。

首先写一个邮件提醒python文件

#!/usr/bin/python
# -*- coding: UTF-8 -*-
import sys
import smtplib
import email.mime.multipart
import email.mime.text

server = \'smtp.163.com\'
port = \'25\'

def sendmail(server,port,user,pwd,msg):
    smtp = smtplib.SMTP()
    smtp.connect(server,port)
    smtp.login(user, pwd)
    smtp.sendmail(msg[\'from\'], msg[\'to\'], msg.as_string())
    smtp.quit()
    print(\'邮件发送成功email has send out !\')


if __name__ == \'__main__\':
    msg = email.mime.multipart.MIMEMultipart()
    msg[\'Subject\'] = \'服务器报警请注意!\'
    msg[\'From\'] = \'python4_mail@163.com\'
    msg[\'To\'] = \'longbaby1101@qq.com\'
    user = \'python4_mail\'
    pwd = \'sbalex3714\'
    content=\'%s\\n%s\' %(\'\\n\'.join(sys.argv[1:4]),\' \'.join(sys.argv[4:])) #格式处理,专门针对我们的邮件格式

    txt = email.mime.text.MIMEText(content, _charset=\'utf-8\')
    msg.attach(txt)

    sendmail(server,port,user,pwd,msg)

然后写自己的监控脚本

#/bin/bash
bu=`free | awk \'NR==2{print $6}\'`
to=`free | awk \'NR==2{print $2}\'`
mem=`expr "scale=2;$bu/$to" |bc -l | cut -d. -f2`
if(($mem >= 70))
        then
        msg="TIME:$(date +%F_%T)
                 HOSTNAME:$(hostname)
                 IPADDR:$(ifconfig |awk \'NR==2{print $2}\')
                 MSG:内存high了high了!已经用了${mem}%"
            echo $msg
        /usr/bin/pymail.py $msg
fi
systemctl status nginx
if(($?!=0))
        then
                msg="TIME:$(date +%F_%T)
                 HOSTNAME:$(hostname)
                 IPADDR:$(ifconfig |awk \'NR==2{print $2}\')
                 MSG:   Nginx 进程出现异常请注意查看!"
            echo $msg
        /usr/bin/pymail.py $msg
fi
systemctl status nfs
if(($?!=0))
        then
                msg="TIME:$(date +%F_%T)
                 HOSTNAME:$(hostname)
                 IPADDR:$(ifconfig |awk \'NR==2{print $2}\')
                 MSG:   NFS 进程出现异常请注意查看!"
            echo $msg
        /usr/bin/pymail.py $msg
fi

之后再定时任务中写入每分钟执行一次

把两个nginx 和 nfs 服务关闭

等待一分钟之后

 

 

以上是关于shell脚本-监控及邮件提醒的主要内容,如果未能解决你的问题,请参考以下文章

Linux基础之-利用shell脚本实现自动监控系统服务

利用shell脚本来监控linux系统的负载与CPU和内存使用情况

根据进程名监控进程(邮件提醒)

Shell脚本监控Mysql主从同步状态+钉钉提醒

Shell开发MySQL主从监控脚本

《shell脚本系统监控-------邮件告警》