Есть лог следующего вида:
69.94.xx.xx - - [03/Jun/2013:04:32:01 +0300]
95.168.xx.xx - - [03/Jun/2013:04:32:0
69.94.xx.xx - - [03/Jun/2013:04:32:01 +0300]
95.168.xx.xx - - [03/Jun/2013:04:32:01 +0300]
176.119.xx.xx - - [03/Jun/2013:04:32:02 +0300]
86.105.xx.xx - - [03/Jun/2013:04:32:02 +0300]
69.94.xx.xx - - [03/Jun/2013:04:32:02 +0300] "
83.172.xx.xx - - [03/Jun/2013:04:32:03 +0300]
91.121.xx.xx - - [03/Jun/2013:04:32:04 +0300]
208.167.xx.xx - - [03/Jun/2013:04:32:04 +0300]
69.94.xx.xx- - [03/Jun/2013:04:32:04 +0300]
91.121.xx.xx - - [03/Jun/2013:04:32:04 +0300]
91.121.xx.xx - - [03/Jun/2013:04:32:04 +0300]
89.161.xx.xx - - [03/Jun/2013:04:32:05 +0300]
69.94.xx.xx - - [03/Jun/2013:04:32:05 +0300]
С горем пополам написал я следующий скрипт)
#!/usr/bin/env python
raw=[(x.split()[0]) for x in open("/home/user/access.log")]
e=0
raw2=[]
for elem in raw:
raw2.append((raw.count(raw[e]),raw[e]))
e+=1
raw2=set(raw2)
raw2=sorted(raw2)
e=0
for elem in raw2:
print (raw2[e])
e+=1
Он подсчитывает колличество запросов с одного айпи.. сортирует и выводит на экран. Но как-то долго)). При логфайле в 70-тыс строк, скрипт тратит 1мин17сек.
Может можно как-то оптимизировать?
З.Ы. Сильно не пинайте это мой первый скрипт))