20.23 20.4 20.4 Alarm system mail engine (upper, middle and lower)
Shell project - alarm system mail.sh
1. Create the mail.py script:
[root@hao-01 ~]# vim/usr/local/bin/mon/mail/mail.py
#####Script Instructions######
#1. First define the email account and password in the script
#2. The script execution command is: python mail.py target mailbox "mail subject" "mail content"
Content reference https://coding.net/u/aminglinux/p/aminglinux-book/git/blob/master/D22Z/mail.py
Added content :
#!/usr/bin/env python
#-*- coding: UTF-8 -*-
import os,sys
import getopt
import smtplib
from email.MIMEText import MIMEText
from email.MIMEMultipart import MIMEMultipart
from subprocess import *
def sendqqmail(username,password,mailfrom,mailto,subject,content):
gserver = 'smtp.163.com'
gport = 25
try:
msg = MIMEText(unicode(content).encode('utf-8'))
msg['from'] = mailfrom
msg['to'] = mailto
msg['Reply-To'] = mailfrom
msg['Subject'] = subject
smtp = smtplib.SMTP(gserver, gport)
smtp.set_debuglevel(0)
smtp.ehlo()
smtp.login(username,password)
smtp.sendmail(mailfrom, mailto, msg.as_string())
smtp.close()
except Exception,err:
print "Send mail failed. Error: %s" % err
def main():
to = sys.argv [1]
subject=sys.argv[2]
content=sys.argv[3]
##Define the account and password of the mailbox, you need to change it to your own account and password (please do not put the real user name and password on the Internet)
sendqqmail('[email protected]','mima','[email protected]',to,subject,content)
if __name__ == "__main__":
main()
2. 设定mail.py脚本权限为755 :
[root@hao-01 ~]# chmod 755 /usr/local/bin/mon/mail/mail.py
3. 创建mail.sh脚本 :
[root@hao-01 ~]# vim /usr/local/bin/mon/mail/mail.sh
mail.sh内容 //其中mail.py内容到这里下载https://coding.net/u/aminglinux/p/aminglinux-book/git/blob/master/D22Z/mail.py
添加内容 :
log=$1
t_s=`date +%s`
t_s2=`date -d "2 hours ago" +%s`
if [ ! -f /tmp/$log ]
then
echo $t_s2 > /tmp/$log
fi
t_s2=`tail -1 /tmp/$log|awk '{print $1}'`
echo $t_s>>/tmp/$log
v=$[$t_s-$t_s2]
echo $v
if [ $v -gt 3600 ]
then
./mail.py $1 $2 $3
echo "0" > /tmp/$log.txt
else
if [ ! -f /tmp/$log.txt ]
then
echo "0" > /tmp/$log.txt
fi
nu=`cat /tmp/$log.txt`
nu2=$[$nu+1]
echo $nu2>/tmp/$log.txt
if [ $nu2 -gt 10 ]
then
./mail.py $1 "trouble continue 10 min $2" "$3"
echo "0" > /tmp/$log.txt
fi
fi
20.26 运行告警系统
1. 暂时关闭掉502:
[root@hao-01 ~]# vim /usr/local/bin/mon/conf/mon.conf
2. 暂时注释掉main.sh脚本中日志行:
[root@hao-01 ~]# vim /usr/local/bin/mon/bin/main.sh
3. 执行main.sh
[root@hao-01 ~]# sh -x /usr/local/bin/mon/bin/main.sh
4. 执行load.sh
[root@hao-01 ~]# bash /usr/local/bin/mon/shares/load.sh