python脚本实现访问日志合并

网易云对象存储的访问日志默认按小时生成一个日志文件,不利于统计当日整体数据,于是考虑将多个日志文
件合并到一个文件中

#!/usr/bin/evn python
# -*- coding:utf-8 -*-
import nos
import time
import sys
import os
import re

access_key = "54175b3a0a544f07a81d618719d44a0a"
secret_key = "513b131cd66d46f6bc5a3e5ca5784780"
bucket = "access-log"
date = time.strftime(‘%Y-%m-%d‘,time.localtime(time.time() - 24*60*60))
prefix = ‘aoshu‘+date
client = nos.Client(access_key, secret_key)
def get_object_lists():
    try:
        object_lists = client.list_objects(bucket, prefix=prefix)
        file_lists = []
        for object_list in object_lists["response"].findall("Contents"):
            file_lists.append(object_list.find("Key").text)
            print object_list.find("Key").text
        if not file_lists:
            print "不存在该时间段内任何日志文件,退出程序..."
            sys.exit(1)
        else:
            #print file_lists
            return file_lists
    except nos.exceptions.ServiceException as e:
        print (
            "ServiceException: %s\n"
            "status_code: %s\n"
            "error_type: %s\n"
            "error_code: %s\n"
            "request_id: %s\n"
            "message: %s\n"
        ) % (
            e,
            e.status_code,   
            e.error_type,   
            e.error_code, 
            e.request_id,
            e.message
       )
    except nos.exceptions.ClientException as e:
        print (
            "ClientException: %s\n"
            "message: %s\n"
         ) % (
            e,
            e.message 
        )
def save_log():
    objects_lists = get_object_lists()
    log_file_name="nos.log"
    with open(log_file_name,‘a‘) as f:
        for object in objects_lists:
            try:
                result = client.get_object(bucket,object)
                f.write(result.get("body").read())
            except nos.exceptions.ServiceException as e:
                print (
                "ServiceException: %s\n"
                "status_code: %s\n"
                "error_type: %s\n"
                "error_code: %s\n"
                "request_id: %s\n"
                "message: %s\n"
                 ) % (
                 e,
                 e.status_code, 
                 e.error_type,  
                 e.error_code, 
                 e.request_id,
                 e.message 
                        )
            except nos.exceptions.ClientException as e:
                print (
                "ClientException: %s\n"
                "message: %s\n"
                 ) % (
                 e,
                 e.message 
                  )
    return log_file_name

if __name__==‘__main__‘:
    save_log()
时间: 2024-11-09 04:02:37

python脚本实现访问日志合并的相关文章

今晚九点|如何使用 Python 分析 web 访问日志?

主题:如何使用 Python 分析 Web 访问日志 内容 Python 基础 字符串.字典.文件.时间 Web 访问日志 实战 提问 主讲师:KK 多语言混搭工程师,热爱开源技术,喜欢GET新技能,5年 PHP.Python 项目开发经验,带领团队完成多个中.小型项目开发,对安全.云等多个领域富有浓厚兴趣,擅长于 WEB 安全开发.性能优化.分布式应用开发&设计等多方面,做事认真负责,乐于分享技能,现任 51Reboot.com Python 实战班讲师 任何语言都有使用场景,只有合适和不合适

python实时监控访问日志

需求:对nginx的访问日志进行实时的检查,如果恶意访问则添加到iptables列表中进行拒绝设置.//访问日志的格式为默认格式 ***正则表达式的zz_r变量中的关键字自行增减.目前在使用中....... 1 import os,sys 2 import subprocess 3 import re 4 5 6 #access_log='/usr/local/nginx/logs/http-access.log' 7 def monitor_log(access_log): 8 print('

Python分析web访问日志

通用日志格式127.0.0.1 - - [14/May/2017:12:45:29 +0800] "GET /index.html HTTP/1.1" 200 4286远程 - - 主机 IP 请求时间 时区 方法 资源 协议 状态码 发送字节 组合日志格式127.0.0.1 - - [14/May/2017:12:51:13 +0800] "GET /index.html HTTP/1.1" 200 4286 "http://127.0.0.1/&quo

一个简易的python脚本统计nginx日志里的url及大小

log 日志格式如下 113.221.56.131 - [05/Feb/2015:18:31:19 +0800] " ab.baidu.com GET /media/game/a_.jpg HTTP/1.1" 200 169334 "http://laoma123.ybgj01.com/" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; QQWubi 133)" " 11

Python基于nginx访问日志并统计IP访问量

如果想看看Nginx有多少IP访问量,有哪些国家访问,并显示IP地址的归属地分布,python可以结合使用高春辉老师ipip.net[免费版 IP 地址数据库],Shell可以使用nali,我这边主要使用python语言来实现需求,并将查询结果以邮件形式发送,也是为了学习和回顾python语言.很感谢高春辉老师提供的免费版IP地址数据库. 一.Ningx日志如下: 41.42.97.104 - - [26/Feb/2015:03:35:40 -0500] "GET /root/ HTTP/1.1

Python获取Nginx访问日志,写入数据库

#!/usr/bin/env python # coding: utf-8 # Auther:liangkai # Date:2018/6/26 11:26 # License: (C) Copyright 2013-2018, Node Supply Chain Manager Corporation Limited. # Describe: import pymysql import re import datetime import sys import time # DB variabl

python统计apache、nginx访问日志IP访问次数并且排序(显示前20条)

前言:python统计apache.nginx访问日志IP访问次数并且排序(显示前20条).其实用awk+sort等命令可以实现,用awk数组也可以实现,这里只是用python尝试下. apache脚本: ips = {} with open("/root/mail_access_log-20180629") as fh:     for line in fh:         ip = line.split(" ")[0]         if 6 < le

shell脚本:nginx访问日志切割与打包上传

脚本功能: 日志切割类脚本,包含:nginx的访问日志.网关设备.AC设备.认证信息等等日志,都通过ftp上传到相应的服务器进行保存. --------------- #!/bin/bash # Cut and upload nginxlog # by colin # revision on 2016-02-22 ######################################## # 功能说明:该脚本运用于切割与上传nginxlog # # 更新说明: # ############

Python脚本访问Greenplum数据库安装指导

安装前准备 (1)操作系统(系统上面要安装一些必备的开发工具(比如gcc等)) linux-82:/home/PyODBC # cat/etc/SuSE-release SUSE Linux EnterpriseServer 11 (x86_64) VERSION = 11 PATCHLEVEL = 1 (2)安装所需的软件包 greenplum-connectivity-4.3.0.0-build-2-SuSE10-x86_64.zip --GP官网下载,GP的JDBC和ODBC驱动 pyod