특정 날짜의 로그 가져오기(Apache 액세스 로그)

특정 날짜의 로그 가져오기(Apache 액세스 로그)

다음과 같이 출력되는 파일에서 특정 시간 범위를 얻는 방법을 제안해 주시겠습니까?

81.200.176.13 - - [23/Mar/2021:09:34:03 +0000] "GET /crx/packmgr/img/thumbnail.png HTTP/1.1" 200 6235

3월 22일 20시부터 22시까지의 날짜가 필요합니다

답변1

기간은 매우 구체적이므로 다음을 사용할 수 있습니다 grep.

grep '\[23/Mar/2021:2[0-2]' /var/log/apache2/access.log

즉, 날짜 문자열을 검색하고 비율이 20-22h 범위 내에 있습니다.

또는 나중에 참조할 수 있도록 sed다음과 같은 방법을 사용할 수도 있습니다.

sed `/START/,/END/p`

예를 들어

sed '/21\/Mar\/2021:01:/,/23\/Mar\/2021:22:/p'

아파치를 강제로 사용하는 경우 journald(인용하다- 경고에 유의하세요.) 다음을 참고할 수도 있습니다.

journald -u apache2 --since "2021-03-23 20:00:00" --until "2021-03-23 22:00:00"

답변2

텍스트 편집기에서 로그 파일을 열고 가장 빠른 타임스탬프를 검색하여 거기부터 시작할 수는 없나요? 일을 매우 간단하게 만들고 싶다면.

VIM에서는 편집 모드가 아닐 때 /2021:20을 쓰면 이 타임스탬프가 포함된 첫 번째 줄로 이동합니다. 거기에서 스크롤하십시오.

관련 정보