대용량 로그 파일을 쉽게 자르는 방법이 있습니까? 즉, 로그 파일의 특별한 내용만 보는 방법입니다. 예를 들어
- 로그 파일에서 마지막 1000줄을 추출하는 방법은 무엇입니까?
- 특수 문자열이 포함된 행만 추출하는 방법은 무엇입니까?
- 특별한 날짜/시간이 포함된 로그 파일을 추출하는 방법은 무엇입니까?
저도 알고 있지만 tail
이 명령은 마지막 10줄로 제한되어 있고 속도가 너무 빠릅니다. 8GB 로그 파일을 검색하는 데 시간이 오래 걸립니다.
답변1
로그 파일에서 마지막 1000줄을 추출하는 방법은 무엇입니까?
tail -1000 file.log
특수 문자열이 포함된 행만 추출하는 방법은 무엇입니까?
grep special_string file.log
특별한 날짜/시간이 포함된 로그 파일을 추출하는 방법은 무엇입니까?
제가 이것을 이해하고 있는지 잘 모르겠습니다. 자세히 설명해 주실 수 있나요? 정확히 무엇을 해야 합니까?
답변2
특수 문자열이 포함된 행만 추출하는 방법은 무엇입니까?
그냥 이것만 말할게요. Solaris 또는 HP-UX 시스템에서는 별도의 파일로 존재 grep
하며 각 파일은 서로 다른 알고리즘을 사용합니다. 대부분의 Linux 배포판에는 이 세 가지 이름 각각에 대한 GNU grep 및 기호 링크만 있습니다. 패턴을 메타 문자('.', '*', '?' 등)와 일치시킬 필요 없이 일반 문자열만 일치시키면 의심할 여지 없이 더 빠르게 실행됩니다 . 더 빠르게 실행 되더라도 8GB의 로그는 처리해야 할 텍스트가 많습니다. 더 작은 0.5GB 크기의 파일로 나누는 것은 어떻습니까?egrep
fgrep
fgrep
fgrep
답변3
한 번만 수행하려면 grep
및 를 사용하십시오 tail
.
logrotate
대용량 로그 파일을 처리하려면 (from a)를 사용하는 것이 좋습니다 cron
. 시간, 크기, 줄 수 등을 기준으로 로그를 분할하도록 구성할 수 있습니다. 매우 편리하고 유연합니다.
답변4
또한 logwatch
중요한 것들을 필터링하기 위해 또는 이와 유사한 것을 고려하십시오.