웹 서버 로그 파일이 있고 가장 많이 방문한 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"와 같은 검증된 도구를 사용하는 것은 어떻습니까? 이러한 도구 중 하나의 출력을 처리할 수 있습니다.