• www.617888cc._www.617888cc.【唯一官网】》》》

  • 发布时间:2016-01-13 08:49 | 作者:yc | 来源:互联网 | 浏览:1200 次
  • www.617888cc._www.617888cc.【唯一官网】》》》

    汇集Tomcat反通常志并发送邮件

    作者:斯巴达克斯

    时候:April 9, 2015

    分类:Python脚本

    脚本功用:

    汇集Tomcat反通常志并发送邮件,要是修正正则表达式,也能够用于汇集其余日志文件的同伴信息

    运转情况:

    Python2.7/2.4皆可运转

    脚本运用措施:

    可使用Crontab或许计划义务来指准时候运转,例如:

    */10 * * * * 脚本道路

    脚本运转感化如下:

    650) this.width=650;" alt=".png" src="http://www.linux178.com/usr/uploads/2015/04/.png" />

    脚本内容如下:

    下载脚本: tomcat_log_error_analysis.zip

    #!/usr/bin/env python# coding=utf-8#---------------------------------------------------------# Name:Tomcat同伴日志发送邮件脚本# Purpose:汇集Tomcat反通常志并发送邮件# Version:1.0# Author:LEO# BLOG:http://www.linux178.com# EMAIL:# Created:2013-05-22# Copyright:(c) LEO 2013# Python:2.7/2.4皆可运用#--------------------------------------------------------from smtplib import SMTPfrom email import MIMETextfrom email import Headerfrom os.path import getsizefrom sys import exitfrom re import compile, IGNORECASE#界说主机 帐号 暗码 收件人 邮件主题smtpserver = 'smtp.163.com'sender = '帐号/发件人'password = '暗码'receiver = ('收件人1','收件人2',)

    www.617888cc._www.617888cc.【唯一官网】》》》subject = u'Web办事器Tomcat日志同伴信息'From = u'xxx W六开彩开奖eb办事器'To = u'办事器治理员'#界说tomcat日志文件方位tomcat_log = 'D:\\Test\\catalina.out'#该文件是用于纪录前次读取日志文件的方位,实行脚本的用户要有创立该文件的权限last_position_logfile = 'D:\\Test\\last_position.txt'#匹配的同伴信息关键词的正则表达式pattern = compile(r'Exception|^\t+\bat\b',IGNORECASE)#发送邮件函数def send_mail(error):

    #界说邮件的头部信息

    header = Header.Header

    msg = MIMEText.MIMEText(error,'plain','utf-8')

    msg['From'] = header(From)

    msg['To'] = header(To)

    msg['Subject'] = header(subject+'\n')#毗连SMTP办事器,然后发送信息

    smtp = SMTP(smtpserver)

    smtp.login(sender, password)

    smtp.sendmail(sender, receiver, msg.as_string())

    smtp.close()#读取上一越日志文件的读取方位def get_last_position(file):

    try:

    data = open(file,'r')

    last_position = data.readline()if last_position:

    last_position = int(last_position)else:

    last_position = 0

    except:

    last_position = 0

    www.617888cc._www.617888cc.【唯一官网】》》》return last_position#写入本越日志文件的本次方位def write_this_position(file,last_positon):

    try:

    data = open(file,'w')

    data.write(str(last_positon))

    data.write('\n' + "Don't Delete This File,博悦邀请码It is Very important for Looking Tomcat Error Log !! \n")

    data.close()except:print "Can't Create File !" + file

    exit()#剖析文件找出反常的行def analysis_log(file):

    error_list = []#界说一个列表,用于寄存同伴信息.

    try:

    data = open(file,'r')except:

    exit()

    last_position = get_last_position(last_position_logfile) #获得上一次文件指针在日志文件中的方位

    this_postion = getsize(tomcat_log)#获得如今文件的巨细,相称于获得了文件指针在结尾的方位

    if this_postionlast_position:#要是是大年夜于上一次的方位,就移动文件指针到前次的方位

    data.seek(last_position)for line in data:if pattern.search(line):

    error_list.append(line)

    write_this_position(last_position_logfile,data.tell())#写入本次读取的方位

    data.close()return ''.join(error_list)#构成一个字符串#调用发送邮件函数发送邮件error_info = analysis_log(tomcat_log)if error_info:

    send_mail(error_info)

    标签:tomcat, 同伴日志, error log, exception, 邮件, 发邮件

  • 相关内容

友情链接: