![웹 서버 로그 분석](https://linux55.com/image/71395/%EC%9B%B9%20%EC%84%9C%EB%B2%84%20%EB%A1%9C%EA%B7%B8%20%EB%B6%84%EC%84%9D.png)
웹 서버 로그 파일이 있고 가장 많이 방문한 10개의 페이지를 표시하는 명령줄 파이프라인을 만들어야 합니다.
그런 다음 이를 쉘 스크립트에 포함시켜야 합니다.
로그 형식은 다음과 같습니다.
127.0.0.1 - frank [10/Oct/2000:13:55:36 -0700] "GET /apache_pb.gif HTTP/1.0" 200 2326
답변1
어떻게에 대한:
grep -oP 'GET \K.*(?=HTTP)' file | sort | uniq -c | sort -rnk1 | head
- 정규식은 과 문자열 사이의 모든 것을
grep
캡처합니다 .GET
HTTP
sort
그런 다음 출력을 정렬하십시오.uniq
세어보세요sort
다시 내림차순으로 숫자에는 첫 번째 필드만 있습니다.head
처음 10줄(가장 많이 방문한 URL 10개)만 인쇄합니다.
답변2
"webalizer" 또는 "awstats"와 같은 검증된 도구를 사용하는 것은 어떻습니까? 이러한 도구 중 하나의 출력을 처리할 수 있습니다.