您的位置 首页 php

PHP慢日志分析生成报告「python脚本」

 #!/usr/bin/python
#coding=utf-8

import hashlib
import os,sys,re,time,socket,commands
import smtplib
from email.MIMEText import MIMEText
from email.Header import Header



log_file="/data/logs/backup/www.log.slow"
host=str(socket.gethostname().strip())
fuhao=os.linesep

#分析一周的php慢日志
def LogPool():
    dd=time.strftime('%Y%m%d')
    www_log_slow_pool=open('/tmp/www_log_slow00.txt','w')
    for num in range(1,8):
        zz=int(dd)-int(num)
        print '%s-%d' %(log_file,zz)
        log_files=open('%s-%d' %(log_file,zz))
        for a in log_files:
            www_log_slow_pool.write(a)
        log_files.close()
    www_log_slow_pool.close()

def LogClear():
    os.system("cat /tmp/www_log_slow00.txt |grep -v runtime|grep -v 'pool www'|grep -v unknown|grep -v dump |awk  '{print $3}' >/tmp/www_log_slow01.txt")
    os.system("sed -i '1'd /tmp/www_log_slow01.txt")
    f=open('/tmp/www_log_slow01.txt')
    file=open('/tmp/www_log_slow02.txt','w')
    for line in f:
        aa=line.strip()
        len_char=len(aa)
        if len_char != 0:
            file.write(aa)
        else:
            file.write(fuhao)
            continue
    f.close()
    file.close()
    commands.getstatusoutput("cat /tmp/www_log_slow02.txt |sort |uniq -c|sort -rn|head -n 20 >/tmp/www_log_slow03.txt")
    file01=open('/tmp/www_log_slow03.txt')
    phpslow_name='/tmp/php_slow.txt'
    file02=open(phpslow_name,'w')
    for xx in file01:
        url=re.split(r"/data/",xx)
        row=re.findall(r"/data/",xx)
        sum=int(len(row))
        for i in xrange(sum):
            mm=str(row[i])+url[i]
            if i == 0:
                mm="以下慢日志重复次数:"+url[i]
            file02.write(mm)
            file02.write(fuhao)
    file01.close()
    file02.close()
def LogRemove():
    for logsum in range(4):
        rmfile='/tmp/www_log_slow0%d.txt'%logsum
        os.remove(rmfile)   

def SendMail():
    mail_host='smtp.ftxjoy.com'
    mail_user='mayi@163.com'
    mail_pass='*******'

    sender='mayi@163.com'
    rece=['ceshi@163.com','yanfa@163.com']
     
    file=open('/tmp/php_slow.txt')
    msg=''
    for line in file:
         msg = msg+line
    file.close()
    message=MIMEText(msg)
    message['subject']=Header("php_slow(182.5)",'utf-8')

    try:
        smtpObj = smtplib.SMTP() 
        smtpObj.connect(mail_host, 25)
        smtpObj.login(mail_user,mail_pass)  
        smtpObj.sendmail(sender, rece, message.as_string())
        print "邮件发送成功"
    except smtplib.SMTPException:
        print "Error: 无法发送邮件"

LogPool()
LogClear()
LogRemove()
SendMail()



  

文章来源:智云一二三科技

文章标题:PHP慢日志分析生成报告「python脚本」

文章地址:https://www.zhihuclub.com/150964.shtml

关于作者: 智云科技

热门文章

网站地图