logrotate는 아파치 로그 파일에 대해 정확히 어떤 작업을 수행합니까? (아파치 2.4 - 우분투 14.04)

logrotate는 아파치 로그 파일에 대해 정확히 어떤 작업을 수행합니까? (아파치 2.4 - 우분투 14.04)

몇 가지 기본 VHOST 외에도 기본 Apache 및 Apache 로깅 구성이 있습니다. Apache 로그 파일(error.log, access.log)을 보려고 할 때마다 파일이 정기적으로 계속 재정렬되고 재구성되는 것을 볼 수 있지만 불행히도 그 이유와 방법을 이해할 수 없습니다.

내가 아는 한, 이 로그 파일 조작은 "logrotate"라는 유틸리티에 의해 수행됩니다.
그리고 맨페이지에 있는 설명

logrotate는 대량의 로그 파일을 생성하는 시스템의 관리를 단순화하도록 설계되었습니다. 로그 파일의 자동 회전, 압축, 삭제 및 메일링이 가능합니다. 각 로그 파일은 매일, 매주, 매월 또는 용량이 너무 커지는 경우 처리할 수 있습니다.

나는 다음 자료를 읽었습니다.

위의 리소스는 방법에 대한 좋은 기술적 설명을 제공합니다.구성logrotate를 수행했지만 무엇에 대한 상식적인 설명을 얻을 수 없습니다.로그 회전 지점은 다음과 같습니다., 작동 방식을 어느 정도 이해하고 있어야 합니다. 일부 파일에서 압축을 수행하는 것을 볼 수 있으며 이로 인한 이점은 분명합니다.

나는 logrotate가 많은 서비스의 로그 파일을 처리할 수 있는 일반 유틸리티라는 것을 알고 있습니다. 따라서 기능은 각 구성에 따라 변경됩니다. 하지만 Ubuntu 14.04의 apache 2.4 컨텍스트에서 "logrotate"는 무엇을 합니까?

답변1

아이디어는 항상 최신 항목을 포함하는 비교적 새로운 마스터 파일(예: access_log 또는 error_log)을 갖는다는 것입니다. 로그가 너무 오래되거나 너무 커지면 logrotate는 정보가 삭제되지 않도록 아카이브 파일을 생성합니다(access_log-YYYYMMDD와 유사).

따라서 기본 로그 파일의 크기를 통제할 수 없을 정도로 오래된 로그에 계속 액세스할 수 있습니다. 더 적은 정보를 포함하는 작은 파일은 읽고 디버깅하기가 더 쉽습니다. 특히 이러한 로그가 몇 기가바이트까지 커질 수 있는 사용량이 많은 서버에서는 더욱 그렇습니다.

예를 들어 CentOS에서는 Apache 로그가 7일마다 교체됩니다.

여유 시간에 아카이브 파일을 삭제하거나 logrotate가 삭제를 처리하도록 할 수 있습니다.

확인하다남자 대수 회전자세한 내용은.

답변2

요점 logrotate은 애플리케이션이 로그 파일에 무기한으로 쓸 수 있도록 허용된 경우

  • 디스크 공간이 부족해지고
  • 파일이 너무 커서 볼 수 없게 됩니다(어떤 사람들은 100MB 로그 파일에 vi를 사용합니다...)

그래서 그것이 하는 일은

  • 구성 가능한 방법 제공이름을 바꿔라현재 활성 파일을 저장된 복사본으로,
  • 로그 파일을 작성 중인 서비스에 새 파일을 시작하도록 알리고
  • 복사본을 보관하는 데 필요한 디스크 공간의 양을 알려주는 구성 가능한 방법을 제공합니다.

많은 프로그램이 파일을 열어두기 때문에 로그 파일의 이름을 바꾸는 것만으로는 작동하지 않습니다. 이름이 바뀌면 프로그램은 이름이 바뀐 파일에 계속해서 씁니다.

로깅용으로 설계된 프로그램은 일반적으로 신호에 응답하도록 설계됩니다. 그렇지 않다면, (logrotate 구성 가능), 로그 파일이 커지면 서비스를 다시 시작할 수 있습니다.

추가 자료:

관련 정보