두 날짜 사이에 임의의 로그 파일 집합에서 항목을 덤프하는 도구

두 날짜 사이에 임의의 로그 파일 집합에서 항목을 덤프하는 도구

며칠 전에 중단이 발생했고 지원 팀에서 해당 기간의 사용 가능한 로그를 요청했습니다. 이 작업을 수행하는 방법을 생각할 때 일반적으로 두 날짜 항목 사이에 대해 한 번에 많은 로그 파일을 구문 분석할 수 있는 것이 편리할 것이라고 생각했습니다. .

특히 구성에 대한 선견지명이 있다면 이를 가능하게 할 수 있는 많은 도구가 있습니다
splunk.syslog-ngrsyslog

(이 요구 사항을 수용하기 위해 중앙 로깅 호스트를 설치할 계획입니다)

그러나 단기적으로는 /var/log/*폴더를 반복하고 stdout으로 덤프할 수 있는 도구에 관심이 있습니다. 바람직하게는 간단한 옵션 구문(옵션 찾기는 nice + mtime 등이 될 것임)을 사용하고 이 작업을 신속하게 수행할 수 있는 것으로 작성되었습니다. 아마도 Perl이나 Ruby 대신 C일 것입니다)

예를 들어, 목적에 적합할 수도 있고 적합하지 않을 수도 있는 여러 도구를 보았지만 mergelog여기에 확실히 적합한 도구는 하나도 눈에 띄지 않았습니다. 이상하게도 UNIX 도구에서는 이것이 가능하리라 예상했습니다. 계속된 일들.logppsec

답변1

  1. 사용:

    find ... -mtime [fromdate] -a -not -ctime [todate]
    

    [fromdate]이후 수정되고 이전에 생성된 모든 파일 찾기[todate]

  2. 발견된 파일에 대해 관심 있는 라인을 추출하는 창의적인 패턴을 고안하십시오. egrep/ awk는 Perl/Python보다 훨씬 빠르므로 사용하세요 . 예:

    awk '/^2012-01-(01|02|03)/'
    

    2012년 1월 첫째, 둘째, 셋째 날의 모든 행이 인쇄됩니다.

위의 내용을 작성하고 실행하는 데 2분이 걸렸습니다. 성능이 실제로 문제라면 더 복잡한 것을 찾으려고 계속 노력하십시오.

관련 정보