로그 파일의 특정 내용만 보려면 어떻게 해야 합니까?

로그 파일의 특정 내용만 보려면 어떻게 해야 합니까?

대용량 로그 파일을 쉽게 자르는 방법이 있습니까? 즉, 로그 파일의 특별한 내용만 보는 방법입니다. 예를 들어

  • 로그 파일에서 마지막 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 크기의 파일로 나누는 것은 어떻습니까?egrepfgrepfgrepfgrep

답변3

한 번만 수행하려면 grep및 를 사용하십시오 tail.

logrotate대용량 로그 파일을 처리하려면 (from a)를 사용하는 것이 좋습니다 cron. 시간, 크기, 줄 수 등을 기준으로 로그를 분할하도록 구성할 수 있습니다. 매우 편리하고 유연합니다.

답변4

또한 logwatch중요한 것들을 필터링하기 위해 또는 이와 유사한 것을 고려하십시오.

관련 정보