시스템(Linux)

logrotate 에 대해 알아보겠습니다.

forward error correction Circle 2023. 10. 6. 08:04
반응형

Ⅰ. logrotate 란? 

  logrotate는 리눅스와 Unix 기반 시스템에서 로그 파일 관리를 자동화하기 위한 유틸리티입니다. 이것은 로그 파일을 주기적으로 백업, 압축, 로테이트(순환), 삭제 및 관리하는 데 사용됩니다. 로그 파일은 시스템 리소스를 소비하고 디스크 공간을 차지할 수 있으므로, logrotate를 사용하면 로그 파일을 효과적으로 관리할 수 있습니다.

Ⅱ. logrotate의 특징

 1) 주기적 로그 파일 관리: logrotate는 일정 주기 또는 크기에 따라 로그 파일을 관리합니다. 기본적으로 매일, 매주 또는 매월 실행할 수 있으며, 로그 파일의 크기 또는 날짜에 따라 작업을 수행할 수 있습니다.
 2) 압축: 이 유틸리티는 오래된 로그 파일을 압축하여 디스크 공간을 절약합니다. 주로 gzip과 같은 압축 알고리즘이 사용됩니다.
 3) 로그 파일 순환: 로그 파일을 주기적으로 로테이트하여 새 로그 데이터를 기존 파일에 추가하는 방식으로 작동합니다. 이로써 이전 로그 데이터를 보존하면서 새 데이터를 쓸 수 있습니다.
 4) 로그 파일 삭제: 설정에 따라 일정 기간이 지난 로그 파일을 삭제할 수 있습니다. 이것은 디스크 공간을 확보하는 데 도움이 됩니다.
 5) 설정 파일: logrotate의 동작은 설정 파일에 의해 제어됩니다. 일반적으로 /etc/logrotate.conf나 /etc/logrotate.d/ 디렉터리 내의 설정 파일을 사용합니다.
 6) 사용자 정의 설정: 로그 파일의 특정 설정 (예: 로그 파일의 크기 한계, 보관 기간, 압축 여부)은 사용자 정의 설정으로 변경할 수 있습니다.

Ⅲ. logrotate의 사용방법

기본적으로 logrotate는 /etc/logrotate.conf 파일에 설정파일이 있습니다.

해당 파일을 열어보면, /etc/logrotate.d 폴더를 include 하고 있어서 /etc/logrotate.d 폴더만에 해당 파일을 만들면 자동으로 실행됩니다.

(/etc/cron.daily 폴더 안에 logrotate 실행 파일이 들어가 있어서, 자동으로 logrotate.conf 를 logrotate로 실행하게 됩니다.)

 

logrotate 의 실행 순서는 다음과 같습니다.

crontab -> cron.daily -> logrotate -> logrotate.conf -> logrotate.d

 

daily : 일단위로 실행합니다.

rotate 5 : 회전 주기를 설정합니다.

notifempty : 로그파일의 내용이 없을경우 rotate 하지 않습니다.
 
missingok : 로그파일이 없을경우 에러메시지를 출력하고 다음으로 실행합니다.
 
compress : 로그파일을 압축합니다.
 
sharedscripts : 여러개의 로그파일을 스크립트로 공유하여 실행합니다.
 
postrotate : 실행 후 스크립트 파일 실행합니다.
 
/server/apache2/bin/apachectl graceful.
 
endscript : 실행 후 스크립트 파일 실행합니다.

* logrotate 강제 실행 명령어

/usr/sbin/logrotate -f /etc/logrotate.d/test

* logrotate  실행 과정 화면 표시

/usr/sbin/logrotate -v /etc/logrotate.d/test

반응형