[Reszlegesen megoldva] URL-kereso script Apache statushoz

Hali!
Adott az apachectl fullstatus. Ez szep eredmenyt ad, de sajnos tordeli a sorokat.

294-19 - 0/0/50 . 0.00 11 0 0.0 0.00 0.48 a.a.a.a xy.hu GET
296-19 - 0/0/15 . 0.19 6 0 0.0 0.00 0.29 a.a.a.a aa.hu GET
bb.hu GET /kez.html HTTP/1.1
cc.hu GET /uploads/h4.jpg HTTP/1.1
cc.hu GET /uploads/h3.jpg HTTP/1.1
305-19 10653 0/12/27 W 1.24 0 0 0.0 0.04 0.09 a.a.a.a ee.hu GET
306-19 10654 0/14/29 _ 1.49 0 856 0.0 0.12 0.27 a.a.a.a ee.hu
bb.hu GET /uploads/tt/h8.jpg HTTP/1.1

formaban csinalja. Fentebb az a.a.a.a IP-cimek, az aa.hu, bb.hu stb a lekert site-ok. Ebbol kellene osszesitest csinalnom, amit kitalaltam:
grep -F1 -A1 GET apachestatus.log
merthogy a GET elott vagy utan vagy vele egy sorban van a fontos info (lekert site)

awk nem jatszik, elvegre nem tudom, melyik mezo a site, lehet elso, utols vagy barhol a sorban.

Tudna valaki erre egy scriptet mondani?

Hozzászólások

Ezt elbaltaztam, mert grep -A1 -B1 stb. lenne a helyes, de ennel sokkal egyszerubb a
grep "\.hu\|.com" apachestatus.log.1 , hiszen nagyreszt ez a ket domain van.
Viszont a sorban barhol lehetnek ezek...

Megjegyzem, ez
grep GET /var/log/apache/global-access.log.1 | awk -F\" '{print $2}' | awk -F\/ '{print $1}' |sort | uniq -c
mukodik a normal apache lognal, kiszedi az osszes url-t, megszamolja, hogy melyikbol mennyi van. Csak nekem sajna nem ez kell, hanem ha tul sok a process, akkor logol az apachestatus file-ba, de sajnos tori a sort :(

De ha valaki megmondja, hogyan mondhatom meg a mod_status-nak, hogy ne formazzon, az is jo lesz :)

Reszlegesen megoldva. A fenti sciprtre most sincs otletem (probaltam az awk index() es awk match() fuggvenyeket, de nem jott ossze.

Szerencsere az apachectl bash script es kiprobaltam, hogy a lynx-et helyettesitem links-szel :) (A STATUSURL-t mar amugy is at kellett irnom regebben)
Igy mar nem formazza es tordeli a sorokat, az url fix pozicioban van, awk mar elbanik vele.

Azert a scriptre varom az otleteket :) Addig is, ha az ember a lynxet lecsereli linksre, akkor ezzel a paranccsal szep kimutatast kap az epp lekert hostokrol:
apachectl fullstatus | grep "\.hu\|.com" | awk '{print $12}' | sort | uniq -c | sort -n

Aztan persze nalam ez file logol, ha nagy a terheles es naponta atnezem (multkor az egyik oldalra egy IP-rol negy perc alatt 9000 koruli lekeres jott...)