본문 바로가기
리눅스

아파치 access 로그 remote_addr top 10

by 혜룐 2015. 11. 10.
아파치 access 로그 remote_addr top-N 만 보고 싶다.
remote_addr 이 아니라면, 로그딜리미터가 " " 로 했을때 '{print $7}'
딜리미터로
확인해서 보면 된다.
아파치 access 로그 형태는 아래와 같다.
[root@localhost apacheLog]# cat access.log 
64.242.88.10 - - [07/Mar/2004:16:05:49 -0800] "GET /twiki/bin/edit/Main/Double_bounce_sender?topicparent=Main.ConfigurationVariables HTTP/1.1" 401 12846
64.242.88.10 - - [07/Mar/2004:16:05:50 -0800] "GET /twiki/bin/edit/Main/Double_bounce_sender?topicparent=Main.ConfigurationVariables HTTP/1.1" 401 12846
65.242.88.10 - - [07/Mar/2004:16:05:49 -0800] "GET /twiki/bin/edit/Main/Double_bounce_sender?topicparent=Main.ConfigurationVariables HTTP/1.1" 401 12846
66.242.88.10 - - [07/Mar/2004:16:05:49 -0800] "GET /twiki/bin/edit/Main/Double_bounce_sender?topicparent=Main.ConfigurationVariables HTTP/1.1" 401 12846
"Double"로 매치된 remote_addr TOP으로 보려면 아래처럼
[root@localhost apacheLog]# find . -name "*.log" -type f -mtime 0 | xargs grep "Double"| awk -F " " '{print $1}' | sort | uniq -c | sort -r
2 64.242.88.10
1 66.242.88.10
1 65.242.88.10
+ 앞에서 top 2로 뽑으려면
[root@localhost apacheLog]# find . -name "*.log" -type f -mtime 0 | xargs grep "Double"| awk -F " " '{print $1}' | sort | uniq -c | sort -r | head -n 2
2 64.242.88.10
1 66.242.88.10