CentOS에서 추가 가능하고 grep 가능한 아카이브로 많은 로그 파일을 저장할 수 있습니다(logrotate가 더 강력함)

CentOS에서 추가 가능하고 grep 가능한 아카이브로 많은 로그 파일을 저장할 수 있습니다(logrotate가 더 강력함)

CentOS 6.3 시스템에는 다음과 같은 방식으로 일일 로그(매우 유사한 콘텐츠가 포함된 텍스트 파일)를 생성하는 여러 응용 프로그램이 있습니다.

/data/logs/app/my-2014-06-29.log
/data/yet_another_app/logs/catalina.20140629
/data/in_fact/there_are/around_500_such_paths/2014-06-29-1.log

나는 이 로그를 5년 동안 보관해야 합니다. 현재는 전통적인 Unix 방식으로 처리하고 있습니다. 즉, 제자리에 압축하는 것뿐입니다(예: .log.bz2). 하지만 여전히 많은 공간을 차지하는 것이 만족스럽지 않습니다. 먼저 압축한 다음 나중에 압축하면 많은 공간을 절약할 수 있을 것 같습니다(1년 분량의 로그를 보관할 수 있는 거대한 .zip 파일을 생각해 보세요).

필요하다:

RHEL 코셔

"소스에서 컴파일"하지 마십시오. .rpm 형식으로 배포할 만큼 성숙하지 않은 경우에는 나에게 적합하지 않습니다.

grep

아카이브는 재귀 grep(예 grep -rli: )을 허용해야 합니다.

grep_my_zip  -rli  pattern   /this/and/that/wildcards/2014-06-*

greping 시 아카이브는 모든 항목의 압축을 풀어서는 안 되며, 와일드카드와 일치하는 파일만 압축을 풀어야 합니다.

추가의

매주 파일을 넣어요동일한파일 시스템에서 보관하고 삭제합니다.

append_and_remove   $( find /this/and/that  -name '*.log' -type f -mtime +31 )     # weekly log cleaning job

이것은 주간 아카이브가 아니며, 매주 큰 연간 아카이브에 추가하고 싶습니다.

마이크로소프트 윈도우 액세스

아카이브는 주로 CentOS Linux에서 실행되는 동안 긴급 목적으로 Windows에서 단일 파일 검색도 허용해야 합니다(따라서 squashfs 스타일 파일 시스템은 실행 가능한 옵션이 아닙니다).

선택 사항(추가 사항이지만 필수는 아님)

  • 추가는 공간 효율적이어야 합니다. 이전 로그 파일이 현재 로그 파일과 매우 유사하다는 점을 고려하면
  • 주간 작업을 위한 logrotate 통합
  • Windows용 grep_my_zip
  • 아카이브는 추가뿐만 아니라 업데이트도 가능합니다(예: 쓰기 가능).

원래 출판됨이 불쌍한 동생을 위해

답변1

다양한 압축기에 대한 나의 연구는 공간을 절약하기 위해 틀에 얽매이지 않는 길을 가는 것이 가치가 없다는 것을 보여줍니다.

  • 8800M 압축 해제된 격주 입력(5842개 파일)
  • 270M 그냥 bzip2(전통적인 logrotate 스타일 - 별도의 .log.bz2 파일)
  • 257M tar bzip2
  • 400M 지퍼
  • 132M p7zip(Windows .7z와 호환 가능)
  • 140M 타르 xz
  • 129M tar lrzip

관련 정보