다음과 같이 출력되는 파일에서 특정 시간 범위를 얻는 방법을 제안해 주시겠습니까?
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을 쓰면 이 타임스탬프가 포함된 첫 번째 줄로 이동합니다. 거기에서 스크롤하십시오.