|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
欢迎大家来到仓酷云论坛!剧本功效:
搜集Tomcat异常日记并发送邮件,假如修正正则表达式,也能够用于搜集其异日志文件的毛病信息
运转情况:
Python2.7/2.4皆可运转
剧本应用办法:
可应用Crontab或许筹划义务来指准时间运转,例如:
*/10****剧本路径
剧本运转后果以下:
剧本内容以下:
- #!/usr/bin/envpython#coding=utf-8#---------------------------------------------------------#Name:Tomcat毛病日记发送邮件剧本#Purpose:搜集Tomcat异常日记并发送邮件#Version:1.0#Author:LEO#BLOG:http://linux5588.blog.51cto.com#EMAIL:chanyipiaomiao@163.com#Created:2013-05-22#Copyright:(c)LEO2013#Python:2.7/2.4皆可以使用#--------------------------------------------------------fromsmtplibimportSMTPfromemailimportMIMETextfromemailimportHeaderfromos.pathimportgetsizefromsysimportexitfromreimportcompile,IGNORECASE#界说主机帐号暗码收件人邮件主题smtpserver=smtp.163.comsender=帐号/发件人password=暗码receiver=(收件人1,收件人2,)subject=uWeb办事器Tomcat日记毛病信息From=uxxxWeb办事器To=u办事器治理员#界说tomcat日记文件地位tomcat_log=/usr/local/tomcat/logs/catalina.out#该文件是用于记载前次读取日记文件的地位,履行剧本的用户要有创立该文件的权限last_position_logfile=/tmp/last_position.txt#婚配的毛病信息症结字的正则表达式pattern=compile(rException|^ +at,IGNORECASE)#发送邮件函数defsend_mail(error):#界说邮件的头部信息header=Header.Headermsg=MIMEText.MIMEText(error,plain,utf-8)msg[From]=header(From)msg[To]=header(To)msg[Subject]=header(subject+
- )#衔接SMTP办事器,然后发送信息smtp=SMTP(smtpserver)smtp.login(sender,password)smtp.sendmail(sender,receiver,msg.as_string())smtp.close()#读取上一第二天志文件的读取地位defget_last_position(file):try:data=open(file,r)last_position=data.readline()iflast_position:last_position=int(last_position)else:last_position=0except:last_position=0returnlast_position#写入本第二天志文件的本次地位defwrite_this_position(file,last_positon):try:data=open(file,w)data.write(str(last_positon))data.write(
- +"DontDeleteThisFile,ItisVeryimportantforLookingTomcatErrorLog!!
- ")data.close()except:print"CantCreateFile!"+fileexit()#剖析文件找出异常的行defanalysis_log(file):error_list=[]try:data=open(file,r)except:exit()last_position=get_last_position(last_position_logfile)this_postion=getsize(tomcat_log)ifthis_postion<last_position:data.seek(0)elifthis_postion==last_position:exit()elifthis_postion>last_position:data.seek(last_position)forlineindata:ifpattern.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)iferror_info:send_mail(error_info)
复制代码 出自“雷纳科斯的博客”博客,请务必保存此出处http://linux5588.blog.51cto.com/65280/1208951
如果您觉得本篇CentOSLinux教程讲得好,请记得点击右边漂浮的分享程序,把好文章分享给你的好朋友们! |
|