본문 바로가기
리눅스/Part3. Ch02. 프로세스 관리

05. (실습) crontab으로 로그파일 크기 자동 관리 설정

by Engineer-Lee 2022. 7. 17.
반응형

운영 중에 로그 파일이나 임시 파일의 증가로 disk full 관련한 장애가 적지 않게 발생
-> crontab으로 로그 파일 관리방법

 

crontab으로 로그 파일을 관리하는 실습

- 타겟 App은 nginx
- nginx 로그 파일을 관리하는 작업을 crontab으로 관리
  . access.log, error.log
- 로그 파일 관리 정책
  . 매일 로그 파일 관리 프로그램 실행
  . 날짜가 지나면 로그 파일을 로테이트
  -> 이전 날짜의 로그는 별도 이름으로 저장
     예) access.log, access.log.1
  . 2주가 지난 로그파일은 삭제
  . 오래된 로그 파일은 압축된 형태로 저장
     예) access.log, access.log.1, access.log.2.gz, access.log.3.gz,,,

 

logrotate

- 로그 파일 관리를 도와주는 도구
- 지원 기능
로그 압축, 제거, 특정 기간 단위로 로그 분리,
메일 전송 등

 

 

시스템이 정의한 crontab 구성에는

-> 일, 시간, 일, 주, 월별 주기 작업을 위한 설정이 포함되어 있음
-> 해당 디렉토리에 포함된 스크립트를 실행
예) cron.daily 디렉토리의 작업을 매일 6시 25분에 실행


실습 내용

$ sudo apt install nginx
-> 패키지 설치 과정에 로그 파일 관리 내용이 포함되어 있음
-> 수동으로 설정할 경우 해당 내용을 참고

 

 

 


정리

crontab + logrotate

  • 시스템에 일반적으로 시간/일/주/월 단위의 주기적 작업을 위한 구성이 만들어져 있음
    cron.hourly, cron.daily, crontab.weekly, crontab.monthly
    -> 해당 디렉토리에 실행할 작업을 스크립트 형태로 등록하면 됨
  • 일 단위 주기적 작업에 logrotate가 등록되어, 지정된 시간에 매일 logrotate가 실행됨
  • logrotate는 /etc/logrotate.d 디렉토리 내에 등록된 작업(nginx)을 진행

 

 

별도의 로그 관리 기능 구현이 필요한 경우 

-> crontab은 신경 쓸 필요 없음
    (system정의 crontab 설정 사용)
-> /etc/logrotate.d 에 logrotate 설정 파일만 추가

반응형