LInux服务器游戏日志合并

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了LInux服务器游戏日志合并相关的知识,希望对你有一定的参考价值。

############################ 需求 ############################ 

1、把Sock1服务器的日志和Sock2服务器的日志合并到Sock2指定目录中

2、每天凌晨一点合并,合并的日志文件名为yymmdd

3、超过七天的日志自动删除

技术分享


Sock1配置

cat /tmp/log.expcet
#!/usr/bin/expect
spawn rsync -avzP /data/serverlogs/workspace1/behavior/behavior [email protected]:/tmp/dx5_1
set timeout 5
expect "*password:"
send "123456\r"
expect eof
spawn rsync -avzP /data/serverlogs/workspace2/behavior/behavior [email protected]:/tmp/dx5_2
set timeout 5
expect "*password:"
send "123456\r"
expect eof
spawn rsync -avzP /data/serverlogs/workspace3/behavior/behavior [email protected]:/tmp/dx5_3
set timeout 5
expect "*password:"
send "123456\r"
expect eof
spawn rsync -avzP /data/serverlogs/workspace4/behavior/behavior [email protected]:/tmp/dx5_4
set timeout 5
expect "*password:"
send "123456\r"
expect eof
spawn rsync -avzP /data/serverlogs/workspace5/behavior/behavior [email protected]:/tmp/dx5_5
set timeout 5
expect "*password:"
send "123456\r"
expect eof
exit


#定时任务

crontabl -l
59 0 * * * /usr/bin/expect /tmp/log.expect


Sock2服务器配置

# cat /data/report_job/behaviorLogs/Merge_log.py
#!/usr/bin/env python
#coding:utf-8
import os,datetime

def Merge_log():

    #获取时间前一天和前八天的时间
    ONE=datetime.datetime.now() - datetime.timedelta(days=1)
    TOW=datetime.datetime.now() - datetime.timedelta(days=8)
    NOW=ONE.strftime(‘%Y%m%d‘)
    BEFORE=TOW.strftime(‘%Y%m%d‘)
    
    #开始合并日志
    for i in range(1,6):
        try:
            os.system(‘cat /tmp/dx5_%s >> /data/report_job/behaviorLogs/%s‘ % (i,NOW))
            os.system(‘cat /data/serverlogs/workspace%s/behavior/behavior >> /data/report_job/behaviorLogs/%s‘ % (i,NOW))
        except Exception,e:
            os.system(‘echo "###### %s Merge log fail ######" >> /data/report_job/behaviorLogs/Merge_records‘ % NOW)
        else:
            os.system(‘echo "###### %s Merge log success ######" >> /data/report_job/behaviorLogs/Merge_records‘ % NOW)
            
    #删除超过七天的合并日志
    a=os.chdir(‘/data/report_job/behaviorLogs/‘)
    r=os.popen(‘ls‘)
    info=r.readlines()
    for i in info:
        i=i.strip(‘\n‘)
        if BEFORE > i:
            os.system(‘rm -rf %s‘ % i)
            
    #日志文件空行换行
    os.system(‘echo >> /data/report_job/behaviorLogs/Merge_records‘)
    
if __name__==‘__main__‘:
    Merge_log()


#定时任务

tail -1 /etc/crontab
0 1 * * * root /usr/bin/python /data/report_job/behaviorLogs/Merge_log.py


本文出自 “wsyht90的博客” 博客,请务必保留此出处http://wsyht90.blog.51cto.com/9014030/1883482

以上是关于LInux服务器游戏日志合并的主要内容,如果未能解决你的问题,请参考以下文章

4.3 合并重复的条件执行片段

argparse 代码片段只打印部分日志

ELK之三-----JAVA日志多行合并tomcat json日志收集与处理

常用python日期日志获取内容循环的代码片段

在 Linux 上配置一个 syslog 服务器

我的Android进阶之旅NDK开发之在C++代码中使用Android Log打印日志,打印出C++的函数耗时以及代码片段耗时详情