python实现apahce网站日志分析示例

时间:2023-03-28 23:51:08 

维护脚本一例,写得有点乱,只是作为一个实例,演示如何快速利用工具快速达到目的:
应用到:shell与python数据交互、数据抓取,编码转换


#coding:utf-8
#!/usr/bin/python
'''
程序说明:apache access.log日志分析
 分析访问网站IP 来源情况
 日期:2014-01-06 17:01
 author:gyh9711

 程序说明:应用到:shell与python数据交互、数据抓取,编码转换
'''
import os
import json
import httplib
import codecs

LogFile='/var/log/apache2/access.log'
#日志
logMess='/tmp/acc.log'
if os.path.isfile(logMess):
 os.system('cp /dev/null %s'% logMess)
file=codecs.open(logMess,'w+',encoding='utf-8')

def cmd(cmd):
  return os.popen(cmd).readlines()
'''
def getIp(ip):
 return json.loads(os.popen("/usr/bin/curl http://ip.taobao.com/service/getIpInfo.php?ip=%s" % ip).readline())['data']
'''
conn = httplib.HTTPConnection('ip.taobao.com')
def getIpCountry(ip):
 conn.request('GET','/service/getIpInfo.php?ip=%s' % ip)
 r1=conn.getresponse()
 if r1.status == 200:
  return json.loads(r1.read())['data']
 else:
  return "Error"
#将access.log文件进行分析,并转为python数组
file.write(u"字段说明:ip   访问次数据  ip国家 城市的 isp号  省份  所在地区\n")
ipDb=[]
for i in cmd('''/usr/bin/awk '{print $1}' %s |sort |uniq -c''' % LogFile):
 ip = i.strip().split(' ')
 ipDb.append(ip)
#通过taobao 提供接口分析ip地址来源
for i in ipDb:
 _tmpD=getIpCountry(i[1])
 #格式说明:ip   访问次数据  ip国家 城市的 isp号  省份  所在地区
 out="%s%s%s%s%s%s%s"%(i[1].ljust(20),i[0].ljust(10),_tmpD['country'].ljust(20),_tmpD['city'].ljust(16),_tmpD['isp_id'].ljust(16),_tmpD['region'].ljust(16),_tmpD['area'].ljust(16))
 print out
 file.write("%s\n"%out)

conn.close()
file.close()

'''

'''

标签:python,日志
0
投稿

猜你喜欢

  • JavaScript学习心得之如何走出初学困境

    2008-12-24 13:30:00
  • 自动生成sql语句

    2008-05-09 12:42:00
  • oracle10g 数据备份与导入

    2009-06-10 18:21:00
  • Python接口自动化之cookie、session应用详解

    2023-02-02 11:10:35
  • MySQL命令无法输入中文问题的解决方式

    2024-01-15 19:29:54
  • CPQuery 解决拼接SQL的新方法

    2012-11-30 20:01:46
  • python软件都是免费的吗

    2022-09-04 03:45:53
  • python实现计数排序与桶排序实例代码

    2023-12-28 11:32:37
  • Jupyter Notebook 如何修改字体和大小以及更改字体样式

    2022-01-20 00:21:44
  • Go语言并发编程 互斥锁详情

    2024-02-02 04:58:30
  • 使用NumPy进行数组数据处理的示例详解

    2023-03-31 20:06:50
  • Python异步编程之协程任务的调度操作实例分析

    2023-02-23 17:03:46
  • Python中绑定与未绑定的类方法用法分析

    2021-08-06 22:56:54
  • 浅谈keras 模型用于预测时的注意事项

    2022-10-16 13:23:04
  • js 上传文件预览的简单实例

    2024-06-05 09:11:59
  • ASP + XML + JavaScript 实现动态无限级联动菜单

    2008-06-13 06:31:00
  • 数据库性能优化二:数据库表优化提升性能

    2024-01-22 12:07:19
  • 在网页中实现细线边框的两种方法

    2011-06-14 09:47:26
  • python 输出列表元素实例(以空格/逗号为分隔符)

    2023-10-03 16:40:52
  • golang 检查网络状态是否正常的方法

    2024-05-08 10:45:03
  • asp之家 网络编程 m.aspxhome.com