사후 회전과 압축 사이에서 logrotate가 대기하는 시간

사후 회전과 압축 사이에서 logrotate가 대기하는 시간

소프트웨어를 작성 중인데 프로세스가 logrotate 등으로부터 SIGHUP 신호를 받으면 로그 파일을 다시 로드하고 싶습니다. 문제는 logrotate가 회전된 로그 파일 압축을 시작하기 전에 애플리케이션이 얼마나 많은 시간을 사용할 수 있느냐는 것입니다.

내가 찾은 맨페이지와 모든 참조에는 응용 프로그램이 로그를 "즉시" 다시 로드해야 한다고 명시되어 있지만 예를 들어 이 작업이 1밀리초 안에 완료되어야 하는지, 아니면 1초 안에 완료되어야 하는지는 언급되어 있지 않습니다.

답변1

단지 안전을 위해서: 전혀 그렇지 않습니다.

Logrotate는 postrotate 명령이 완료되면 로그 파일이 더 이상 기록되지 않는다고 가정합니다. "로그 파일을 닫는 데 시간이 걸릴 수 있음"을 처리하는 방법에는 두 가지가 있습니다.

  • logrotate 옵션은 delaycompress다음까지 압축 단계를 연기합니다.다음로그 회전 호출. 이렇게 하면 다음 logrotate 실행만큼 오랜 시간이 걸릴 수 있습니다(이렇게 하는 것은 매우 나쁜 생각이지만).
  • 데몬에게 로그 파일을 닫았다가 다시 열도록 명령줄 도구를 작성하여 이 명령이 수행되는지 확인할 수 있습니다.아니요데몬이 모든 로그 파일이 닫혔음을 확인할 때까지 종료합니다(해당되지는 않지만 파일이 다시 열릴 때까지 기다릴 필요는 없습니다). 그런 다음 postrotatelogrotate 섹션에서 이 명령줄 도구를 사용할 수 있습니다 .

관련 정보