SSH를 통해 일정 기간의 로그 파일 출력

SSH를 통해 일정 기간의 로그 파일 출력

access_log가 있는데 크기가 2GB에 가깝습니다. 부터 2015:09:55까지 분석하고 싶은데 2015:09:57, 이 기간 동안 항목이 500개가 넘습니다. 그래서 저는 단지 내 컴퓨터에 있는 access_log를 출력하고 다운로드 2015:09:55하고 2015:09:57그것을 내 EmEditor에서 열고 싶습니다.

나는 SSH Commond를 잘하지 못합니다. 나는 이것을 시도했지만 작동하지 않았습니다.

[root@server ~]# cat /var/log/httpd/access_log | (grep "2015:09:55"||grep "2015:09:56||grep "2015:09:57") > /home/usr/log_access.txt

답변1

정규식을 사용하여 범위를 sed의 구분 기호로 지정할 수 있습니다.

예를 들어, 2015:09:56에서 2015:09:6(something) 사이의 내용을 포함하는 모든 항목은 다음과 같습니다.

ssh host "sed -n '/2015:09:5[6-9]/,/2015:09:6/ p' /var/log/httpd/access_log"

출력을 로컬 파일로 캡처하려면 다음과 같이 리디렉션을 사용하세요.

ssh host "sed -n '/2015:09:5[6-9]/,/2015:09:6/ p' /var/log/httpd/access_log" >log_snippet

관련 정보