파일의 로그 회전

파일의 로그 회전

파일을 회전하고 회전된 파일을 "backup"이라는 새 디렉터리에 배치하고 싶습니다. 로그 회전이 제대로 작동하고 회전된 파일이 백업 디렉터리로 이동되지 않습니다. 아래에서 제가 사용한 스크립트를 찾아보세요.

참고: .gz 형식으로 압축된 최근에 회전된 파일만 백업 폴더로 이동되지 않으며 .gz 형식으로 보관하는 다른 zip 파일과 마찬가지로 이동됩니다.

스크립트 -

compress    

/data_gpfs/engageone/active-drive/E-Archive/SystemData/logrotation_test/test.log {
        daily
        copytruncate
        create 775 root wsdepl
        dateext
     dateformat %Y-%m-%d
        rotate 30
     maxage 30
        missingok
        #notifempty 
     sharedscripts
     postrotate
        mv /data_gpfs/engageone/active-drive/E-Archive/SystemData/logrotation_test/*.gz /data_gpfs/engageone/active-drive/E-Archive/SystemData/logrotation_test/backup
     endscript
}

답변1

~에서logrotate(8):

그것은 자동을 허용합니다회전, 압축, 제거 및 메일 발송로그 파일. [...] postrotate와 endscript 사이의 줄(둘 다 줄에 단독으로 나타나야 함)로그 파일 회전 후 실행됩니다.

즉, postrotate회전 후에 발생하지만 압축 전에 발생합니다. 호출할 때 mv로그의 gzip 아카이브가 아직 존재하지 않습니다.

logrotatepostcompress후크는 제공되지 않지만 다음을 수행할 수 있습니다.

  1. 대신 후크를 사용해 주세요 lastaction.
  2. 스크립트/코드에서 압축을 처리합니다 postrotate. 파일을 압축하는 쉘 스크립트를 작성한 다음 파일을 이동하고 섹션 postrotate에서 호출하십시오 . compress이 경우 이 옵션을 비활성화하는 것을 잊지 마십시오.
  3. compresscmduncompresscmd필요할 때 파일 찾기 및 이동을 담당하는 사용자 정의 압축/압축 풀기 스크립트를 사용하여 유사한 작업을 사용하고 수행합니다 .
  4. CRON 작업과 독립적으로 이동 logrotate하거나postrotateat (압축 시간을 실제로 예측할 수 없기 때문에 이는 매우 깨끗하지 않습니다).

자세한 내용은 다음을 확인하세요.여기. logrotate처음에는 워크플로를 이해하기가 약간 어려울 수 있지만 필요한 단계를 익히면 모든 것이 원활하게 실행될 것입니다. ;) 다음 SE 질문에도 관심이 있을 수 있습니다.

관련 정보