python脚本log_format main ‘$remote_addr – $remote_user [$time_iso8601] “$request” ‘‘$status $body_bytes_sent “$http_referer” ‘‘”$http_user_agent” “$http_x_forwarded_for” ‘‘ “$upstream_addr” “$upstream_status” “$request_time"`;cat website.access.log| awk ‘{print $(NF)}’ | awk -F “\”” ‘{print $2′}>a.txtpaste -d ” ” website.access.log a.txt > b.txtcat b.txt |awk ‘($NF>...
前言WAF上线之后,处理最多的是误报消除。产生误报有多种原因,比如web应用源码编写时允许客户端提交过多的cookie;比如单个参数提交的数值太大。把误报降低到了可接受的范围后,还要关注漏报。WAF不是神,任何WAF都可能被绕过。所以还需要定位漏过的攻击,明确漏报的原因,才能update WAF的策略。要定位漏报,就必须分析Web应用的访问日志了。一个站点,每天产生的access日志大概接近1GB,显然靠肉眼看是不现实的。这就需要用pyth...
由于工作需要在一大堆日志里面提取相应的一些固定字符,如果单纯靠手工取提取,数据量大,劳心劳力,于是自然而然想到了用Python做一个对应的提取工具,代替手工提取的繁杂,涉及中文字符,正则表达式不好匹配,但不是不可以实现,这个以后优化时再说。 需求描述: 一个父目录中存在多个子文件夹,子文件夹下有多个txt形式化的Log日志,要求从所有地方Log日志中找出CardType=9, CardNo=0时的CardID的值,并将其统计存储到一个文本文...
本文实例讲述了Python记录详细调用堆栈日志的方法。分享给大家供大家参考。具体实现方法如下:import sys import os def detailtrace(info):retStr = ""curindex=0f = sys._getframe()f = f.f_back # first frame is detailtrace, ignore itwhile hasattr(f, "f_code"):co = f.f_coderetStr = "%s(%s:%s)->"%(os.path.basename(co.co_filename),co.co_name,f.f_lineno) + retStrf = f.f_backprint retStr+info def foo():detail...
本文实例讲述了Python同时向控制台和文件输出日志logging的方法。分享给大家供大家参考。具体如下: python提供了非常方便的日志模块,可实现同时向控制台和文件输出日志的功能。#-*- coding:utf-8 -*- import logging # 配置日志信息 logging.basicConfig(level=logging.DEBUG,format=%(asctime)s %(name)-12s %(levelname)-8s %(message)s,datefmt=%m-%d %H:%M,filename=myapp.log,filemode=w) # 定义一个Handler打印INFO及以上级...
本文实例讲述了python操作ssh实现服务器日志下载的方法。分享给大家供大家参考。具体实现方法如下:#coding:utf-8 """ssh操作例子 实现了服务器日志下载2012-08-24yywolf """ import paramiko import time hostname="????" port=22 username="app" password="????" if __name__=="__main__": # paramiko.util.log.log_to_file(paramiko.log)s = paramiko.SSHClient()s.load_system_host_keys()s.set_missing_host_key_policy(para...
本文实例讲述了Python实现监控程序执行时间并将其写入日志的方法。分享给大家供大家参考。具体实现方法如下:# /usr/bin/python # -*- coding:utf-8 -*- from time import time def logged(when):def log(f,*args,**kargs):print called:functions:%sargs: %rkargs: %r % (f,args,kargs)def pre_logged(f):def wrapper(*args,**kargs):log(f,*args,**kargs)return f(*args,**kargs)return wrapperdef post_logged(f):def wrapper(...
本文实例讲述了python统计日志ip访问数的方法。分享给大家供大家参考。具体如下:import re f=open("/tmp/a.log","r") arr={} lines = f.readlines() for line in lines: ipaddress=re.compile(r^#(((2[0-4]\d|25[0-5]|[01]?\d\d?)\.){3}(2[0-4]\d|25[0-5]|[01]?\d\d?)))match=ipaddress.match(line)if match: ip = match.group(1) if(arr.has_key(ip)): arr[ip]+=1 else: arr.setdefault(ip,1) f.close() for key in arr: prin...
本文实例讲述了Python使用logging结合decorator模式实现优化日志输出的方法。分享给大家供大家参考,具体如下: python内置的loging模块非常简便易用, 很适合程序运行日志的输出。 而结合python的装饰器模式,则可实现简明实用的代码。测试代码如下所示:#! /usr/bin/env python2.7 # -*- encoding: utf-8 -*- import logging logging.basicConfig(format=[%(asctime)s] %(message)s, level=logging.INFO) def time_recorder(func):...
最近写一个爬虫系统,需要用到python的日志记录模块,于是便学习了一下。python的标准库里的日志系统从Python2.3开始支持。只要import logging这个模块即可使用。如果你想开发一个日志系统, 既要把日志输出到控制台, 还要写入日志文件,只要这样使用: 代码如下:import logging# 创建一个loggerlogger = logging.getLogger(mylogger)logger.setLevel(logging.DEBUG)# 创建一个handler,用于写入日志文件fh = logging.FileHandler...
本文实例讲述了python实现分析apache和nginx日志文件并输出访客ip列表的方法。分享给大家供大家参考。具体如下: 这里使用python分析apache和nginx日志文件输出访客ip列表ips = {} fh = open("/var/log/nginx/access.log", "r").readlines() for line in fh:ip = line.split(" ")[0]if 6 < len(ip) <=15:ips[ip] = ips.get(ip, 0) + 1 print ips希望本文所述对大家的Python程序设计有所帮助。
本文实例讲述了Python统计日志中每个IP出现次数的方法。分享给大家供大家参考。具体如下: 这脚本可用于多种日志类型,本人测试MDaemon的all日志文件大小1.23G左右,分析用时2~3分钟 代码很简单,很适合运维人员,有不足的地方请大家指出哦#-*- coding:utf-8 -*- import re,time def mail_log(file_path):global countlog=open(file_path,r)C=r\..join([r\d{1,3}]*4)find=re.compile(C)count={}for i in log:for ip in find.findall(i)...
网站流量上来后,日志按天甚至小时存储更方便查看和管理,而Python的logging模块也提供了TimedRotatingFileHandler来支持以不同的时间维度归档日志。 然而根据Logging HOWTO的官方指南设置后,却发现新的日志只剩下root的,Tornado内部的logger全部没有生效。 参考stackoverflow上的一个回答,我发现下面的配置能让Tornado内部的logger也用上TimedRotatingFileHandler:# logging.yamlversion: 1 disable_existing_loggers: false ...
从命令行界面拷贝的内容包含过个">>>",函数的作用是用正则把每两个">>>"之间的字符取出来,然后把包含“Traceback...”的字符的内容去掉,再写到另一个文件中 代码: #coding=utf-8import reimport osdef clearContent(fileName): result=[] with open(fileName) as fp: content=fp.read() L=re.findall( r(?<=>>>).+?(?=>>>) , content,re.M|re.DOTALL) print "len(L):",len(L) for i in L: if "Tr...
我目前正在# three extra blank lines per srh for debug log logging.info('') logging.info('') logging.info('')但这使代码肿,还有什么更好的方法吗?解决方法:它并不是真正的空白行,但有时我使用以下代码:logging.info('-' * 80)