logrotate

전산/OS / / 2021. 2. 16. 18:26

log를 기록하지만 계속 작성하게되면 data가 많아지므로 분리가 필요함

로그 파일을 주기적으로 압축하여 관리 목표

logrotate : 로그파일을 rotates, compresses, mails할 수 있음

 

관련파일

 - /usr/sbin/logrotate : 데몬의 위치 및 데몬프로그램
 - /etc/logrotate.conf : 설정 파일
 - /etc/logrotate.d : logrotate를 적용할 로그 파일 보관 디렉토리
 - /var/lib/logrotate.status : logrotate가 작업 내역 보관 파일
 - /etc/cron.daily/logrotate : logrotate : cron 에 의해 일 단위로 실행

 

동작순서

1. cron.daily 에서 /usr/sbin/logrotate 호출 

2. /usr/sbin/logrotate 에서 /etc/logrotate.conf 설정파일 참조 

3. /etc/logrotate.conf 설정 파일에서 /etc/logrotate.d 참조 ( logrotate.conf 파일 안에 "include /etc/logrotate.d")

 

로그 확인

/usr/sbin/logrotate -d /etc/logrotate.conf
# -d는 디버그 모드 -f는 강제 실행

 

/path/to/log {
  daily
  copytruncate
  create 0700 root root
  compress
  notifempty
  missingok
  dateext
}

 

각 명령어

 

  • rotate 30(숫자)  : log파일 30개 이상 되면 삭제
  • maxage 30(숫자) : 30일 이산된 로그 파일 삭제
  • size : 지정한 용량이 되면 로그로테이트를 실행한다. 10k, 10M 이런식으로 지정한다.
  • create : [권한 유저 그룹] 으로 rotation된 로그파일 생성
  • notifempty : log 내용이 없으면 rotation 하지 않는다.
  • ifempty : 로그파일이 비어있는 경우에도 로테이트한다.
  • monthly : 월 단위로 로테이트 한다.
  • daily : 월 단위로 로테이트 한다.
  • weekly : 월 단위로 로테이트 한다.
  • compress : rotate 된 로그 gzip 압축
  • nocompress : 압축을 원치 않는다.
  • mail admin@mail : 로테이트 설정에 의해 보관주기가 끝난 파일을 메일로 발송한다.
  • mailfirst admin@mail : 로테이트시 신규파일 이전의 로그를 메일로 발송한다.
  • nomail : 메일로 통보받지 않음.
  • errors admin@mail : 로테이트 실행시 에러가 발생하면 이메일로 통보한다.
  • prerotate-endscript : 사이의 명령어를 로그파일 처리전에 실행한다.
  • postrotate-endscript : 사이의 명령어를 로그파일 처리후에 실행한다.
  • extension : 로테이트 후 생성되는 파일의 확정자를 지정한다.
  • copytruncate : 이옵션을 넣지 않으면 현재 사용중인 로그를 다른이름으로 move하고 새로운 파일을 생성한다.



 

반응형

'전산 > OS' 카테고리의 다른 글

데드락  (0) 2021.06.14
리눅스 프로세스 목록 확인  (0) 2021.04.30
crontab vs cronjob  (0) 2021.02.16
Crontab 명령어  (0) 2021.02.16
chmod 명령어  (1) 2021.02.15
  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기