a亚洲精品_精品国产91乱码一区二区三区_亚洲精品在线免费观看视频_欧美日韩亚洲国产综合_久久久久久久久久久成人_在线区

首頁(yè) > 學(xué)院 > 操作系統(tǒng) > 正文

python將日志導(dǎo)入數(shù)據(jù)庫(kù)代碼案例 3

2024-06-28 16:00:50
字體:
供稿:網(wǎng)友

#!/usr/bin/env python

#-*-coding:utf-8-*-

#平臺(tái)收入日?qǐng)?bào)

#****************************************使用說明****************************************************

# 內(nèi)網(wǎng)測(cè)試通過命令行參數(shù)

# -d 指定統(tǒng)計(jì)時(shí)間

# -p 指定日志所在目錄

# -t 指定臨時(shí)文件存放目錄

# 示例如下:

# [ying@localhost tongji]$ ./channelincomeDaily.py -d 20141112 -p /home/zhaoying/log/ -t /home/zhaoying/tongji/

# 外網(wǎng)無需加參數(shù),使用默認(rèn)值

#****************************************使用說明****************************************************

import MySQLdb

import os, sys, re,string

import time, tarfile,getopt

optmap = {

                'dbuser' : 'haoren',

                'dbpass' : '123654',

                'dbhost' : '192.168.10.13',

                'dbport' : 3306,

                'dbname' : 'GHKMDB'

                 }

                 

def get_files(dir, pattern):

        res_file_list =[]

        if os.path.exists(dir):

                cur_file_list = os.listdir(dir)

                cur_file_list.sort()

                for file_name in cur_file_list:

                        if re.search(pattern, file_name):

                                res_file_list.append(file_name)

                return res_file_list

        else:

                return 'no'

def main():

        #外網(wǎng)環(huán)境默認(rèn)參數(shù)

        cur_day = time.strftime("%Y%m%d", time.localtime(time.time()-86400))

        log_day = time.strftime('%y%m%d', time.localtime(time.mktime(time.strptime(cur_day, '%Y%m%d'))))

        logdirname = "/home/haoren/logdir/%s_67"%log_day

        tmpdirname = "/tmp/"

        logname = "billserver"

        #內(nèi)網(wǎng)測(cè)試指定參數(shù)

        opts, args = getopt.getopt(sys.argv[1:], 'd:p:t:')

        for op, value in opts:

                if op == '-d':

                        m = re.search('[0-9]{8}', value)

                        if m:

                                cur_day = value

                                PRint cur_day

                                log_suffix = time.strftime('%y%m%d', time.localtime(time.mktime(time.strptime(cur_day, '%Y%m%d'))))

                                logname = "billserver.log"

                                log_day = time.strftime('%y%m%d', time.localtime(time.mktime(time.strptime(cur_day, '%Y%m%d'))))

                                logdirname = "/home/haoren/logdir/%s_67"%log_day

                        else:

                                print "請(qǐng)輸入8位日期(比如:20130215)"

                                return 'no'

                elif op == '-p':

                        logdirname = str(value)

                elif op == '-t':

                        tmpdirname = str(value)

        fmt_day = time.strftime('%Y-%m-%d', time.localtime(time.mktime(time.strptime(cur_day, '%Y%m%d'))))

        d_time = time.mktime(time.strptime(fmt_day,'%Y-%m-%d'))

        print '統(tǒng)計(jì)日期:',fmt_day

        print '日志名稱:',logname

        print '日志路徑:',logdirname

        print '臨時(shí)文本:',tmpdirname

        #平臺(tái)收入

        if os.path.exists("%schannelincome.txt"%tmpdirname):

                os.system("rm -f %schannelincome.txt"%tmpdirname)

        #平臺(tái)人民幣總量

        if os.path.exists("%schannelallgold.txt"%tmpdirname):

                os.system("rm -f %schannelallgold.txt"%tmpdirname)

        file_list=get_files(logdirname, logname)

        for file in file_list:

                command = "cat %s/%s | awk '/物品統(tǒng)計(jì)/'>> %schannelincome.txt"%(logdirname,file,tmpdirname)

                os.system(command)

                command = "cat %s/%s | awk '/平臺(tái)人民幣統(tǒng)計(jì)/'>> %schannelallgold.txt"%(logdirname,file,tmpdirname)

                os.system(command)

        #平臺(tái)收入

        filename='%schannelincome.txt'%tmpdirname

        a_file = open(filename, 'r')

        #平臺(tái)消耗用戶總?cè)嗣駧?/p>

        allcoin={}

        #平臺(tái)人民幣收入

        goldincome={}

        #平臺(tái)總?cè)嗣駧?/p>

        channelallgold = {}

        #平臺(tái)物品

        channelprops = {}

        #130815-15:01:06 Bill[990]  INFO: [物品統(tǒng)計(jì)]平臺(tái)(210043)等級(jí)(9)用戶(21000162)贈(zèng)送(1)個(gè)物品(3)給歌唱家(21000264),歌唱家等級(jí)(1),簽約(0), 消耗人民幣(10), 歌唱家獲得人民幣(470), 平臺(tái)獲得人民幣(30)

        for a_line in a_file.readlines():

                m = re.search("^(/S+) Bill/[/d+/]  INFO: /[物品統(tǒng)計(jì)/]平臺(tái)/((/d+)/)等級(jí)/((/d+)/)用戶/((/d+)/)贈(zèng)送/((/d+)/)個(gè)物品/((/d+)/)給歌唱家/((/d+)/),歌唱家等級(jí)/((/d+)/),簽約/((/d+)/), 消耗人民幣/((/d+)/), 歌唱家獲得人民幣/((/d+)/), 平臺(tái)獲得人民幣/((/d+)/)", a_line)

                if m:

                        channelid = int(m.group(2))

                        propnum = int(m.group(5))

                        propid = int(m.group(6))

                        signflag = int(m.group(9))

                        coin = int(m.group(10))

                        gold = int(m.group(12))

                        #離線用戶signflag傳入的是平臺(tái)號(hào)

                        if (signflag != 0 and signflag != 1):

                                if (signflag == int(m.group(2))):

                                        signflag = 1

                                else:

                                        signflag = 0

                        if (channelid in channelprops):

                                if (propid in channelprops[channelid]):

                                        channelprops[channelid][propid] += propnum

                                        allcoin[channelid][propid] += coin

                                        goldincome[channelid][propid][signflag] += gold

                                else:

                                        channelprops[channelid][propid] = propnum

                                        allcoin[channelid][propid] = coin

                                        goldincome[channelid][propid] = {}

                                        goldincome[channelid][propid][0] = 0

                                        goldincome[channelid][propid][1] = 0

                                        goldincome[channelid][propid][signflag] = gold

                        else:

                                channelprops[channelid]={}

                                channelprops[channelid][propid] = propnum

                                allcoin[channelid] = {}

                                allcoin[channelid][propid] = coin

                                goldincome[channelid]={}

                                goldincome[channelid][propid]={}

                                goldincome[channelid][propid][0]=0

                                goldincome[channelid][propid][1]=0

                                goldincome[channelid][propid][signflag]=int(m.group(12))

        for key in channelprops:

                print '平臺(tái):',key

        a_file.close()

        #平臺(tái)總?cè)嗣駧沤y(tǒng)計(jì)

        #平臺(tái)總?cè)嗣駧?/p>

        filename='%schannelallgold.txt'%tmpdirname

        a_file = open(filename, 'r')

        #平臺(tái)總?cè)嗣駧?/p>

        allgold={}

        #130816-15:28:45 Bill[990]  INFO: [平臺(tái)人民幣統(tǒng)計(jì)]平臺(tái)(210043)當(dāng)前人民幣(308864653)

        for a_line in a_file.readlines():

                m = re.search("^(/S+) Bill/[/d+/]  INFO: /[平臺(tái)人民幣統(tǒng)計(jì)/]平臺(tái)/((/d+)/)當(dāng)前人民幣/((/d+)/)", a_line)

                if m:

                        allgold[int(m.group(2))] = int(m.group(3))

        for key in allgold:

                print'平臺(tái):%lu,人民幣總量:%u'%(key,allgold[key])

        a_file.close()

        db_conn = MySQLdb.connect(user=optmap['dbuser'], passwd=optmap['dbpass'], host=optmap['dbhost'], port=optmap['dbport'], db=optmap['dbname'])

        db_cursor=db_conn.cursor()

        db_conn.query("use %s"%optmap['dbname'])

        tabletime = time.strftime("%Y%m%d", time.localtime(time.mktime(time.strptime(cur_day, "%Y%m%d"))))

        sql="CREATE TABLE IF NOT EXISTS `CHANNELEARNINGDAILY_%s` like CHANNELEARNINGDAILY_SAMPLE"%tabletime

        db_conn.query(sql)

        db_conn.query("delete from CHANNELEARNINGDAILY_%s"%tabletime)

        for key in channelprops:

                if(key not in allgold):

                        allgold[key]=0

                for kitem in channelprops[key]:

                        db_conn.query("insert into CHANNELEARNINGDAILY_%s(CHANNELID,RECVITEMTOTALCOIN,SIGNGOLD,NONSIGNGOLD,CURGOLD,ITEMID,ITEMNUM ) values(%d,%d,%d,%d,%d,%d,%d)"%(tabletime,int(key),int(allcoin[key][kitem]),int(goldincome[key][kitem][1]),int(goldincome[key][kitem][0]),int(allgold[key]),int(kitem),int(channelprops[key][kitem])))

        db_conn.commit()

        db_cursor.close()

        db_conn.close()

main()

#if __name__ == "__main__":

#        main()


發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 亚洲成人基地 | 日韩欧美在线播放 | 国产成人免费 | 欧美一级一区 | 中文字幕一区二区三区不卡 | 日韩欧美网| 97国产一区二区精品久久呦 | 性感视频网站 | 久久综合一区二区三区 | 亚洲第一成年免费网站 | 欧美一级毛片免费看 | 色噜噜狠狠色综合中国 | 久热精品视频在线播放 | 99色视频| 最新av在线网址 | 九色在线| 福利三区| 国产www在线 | 婷婷综合激情 | 国产成人久久精品一区二区三区 | 午夜影院在线观看 | 国产精品毛片在线看 | 久久国产精品99精国产 | 国产精品久久久久久久久久妞妞 | 九九久久精品 | 偷拍自拍网站 | 在线看免费观看日本 | 九九热视频精品在线 | 日韩av成人 | 免费的黄色小视频 | 久久久久久av | 亚洲一在线 | 日韩草比 | 午夜鞭打vk视频 | 亚洲电影在线观看 | mm1313亚洲国产精品美女 | 福利网站在线观看 | 狠狠色噜噜狠狠狠合久 | 久久精品国产亚洲一区二区三区 | 精品无人乱码区1区2区3区 | 国产免费小视频 |