리눅스 공부를 하면서 책에 꼭!! 나오는 명령어중 logrotate가 있다. (기초 책에 나온다는건 꼭 알아야 하는거죠..)
서버 운영에 가장 중요한 부분인데 오랜 시간 서버 운영을 하다 보면 간과하고 넘어가는 경우가 종종 발생한다.
이로인해 서버 장애가 발생 하기 때문에 되도록 신규 서버 생성시 체크 항목으로 넣는 것이 좋다.
1. logrotate ?
로그는 리눅스가 기동되어 꺼질때까지 모든 기록을 남기는 운영상 & 보안상 아주 중요한 부분입니다. 아무리 중요한 부분이라도 과하면 탈이나죠. 그래서 이 로그를 관리해주는게 로그로테이트(logrotate) 입니다.
로그로테이트(logrotate)는 로그를 갱신하기도하고, 압축하기도 하고, 삭제하기도 합니다.
2. 처리 과정
주로 로그 로테이트는 자동으로 동작하기 보다는 cron에 등록하여 관리는 하는 경우가 많습니다.
(사실 자동으로 동작하는 OS 종류나 커널을 잘 모르겠네요.. 운여하다보니 cron에 없는데도 동작이 잘되는 경우도 있었어서.. 혹시 아시는 분들 댓글 부탁 드립니다.)
크론에 등록되어 실행시 기본 /etc/logroate.conf 기반으로 실행이 되고, /etc/logroate.conf 파일 안에 /etc/logroate.d/* 디렉토리 안에 있는 파일들을 실행하게 되어 있습니다. 자세한 설명은 "3. 필요한 파일" 참조 바랍니다.
3. 필요 구성 파일 및 디렉터리
/etc/logroate.conf
> logrotate 실행에 기본이 되는 파일이고, 수동으로 실행시 서버 전체 로그를 갱신하고 싶으면 그냥 아래 파일 참조로 실행하면 된다.
/etc/logroate.d/*
> 특정한 로그를 별도로 관리하고 싶을때 /etc/logroate.d/ 밑에 파일을 생성해 놓으면 /etc/logroate.conf 파일이 실행될때 함께 실행이 됩니다. 파일 생성시 옵션은 아래 참고 바랍니다.
ex) 파일 생성 예
/car/log/test {
daily
rotate 5
notifempty
missingok
compress
sharedscripts
postrotate
/sbin/systemctl restart rsyslog
endscript
}
4. Logroatate 옵션
여거 옵션이 있지만 필수 적인 부분만 기록 합니다. 자세한 사항은 별도로 확인하세요.
- daily : 매일 실행
- weekly : 매주 실행
- monthly : 매달 실행
- yearly : 매년 실행
- rotate [갯수] : 로그 보관 갯수
- nocompress : 해당되는 로그파일은 압축하지 않음(Default)
- compress : 로그 파일 압축
- compressext [압축형태] : 압축된 백업 로그파일에 지정할 확장자 설정 ex) .bz2
- dateext : 로그파일명에 확장자 추가(Default : YYYYMMDD)
- dateformat [date형식 지정] : YYYYMMDD 형식이 아닌 다른 형식으로 사용시 지정 (Default : -%Y%m%d)
- errors [메일주소] : 에러 발생시 해당 메일주소로 메일 발송
- mail [메일주소] : 실행시 이전 로그파일을 해당 메일주소로 발송
- extention [확장자명] : 해당 확장자로 생성
- missingok : 로그파일이 없을경우에도 에러 처리하지 않음
- ifempty : 로그파일이 비어있는 경우에도 실행(기본값)
- notifempty : 로그파일이 비어있는 경우 실행하지 않음
- prerotate / endscript : 실행 전 스크립트 파일 실행
- postrotate / endscript : 실행 후 스트립트 파일 실행
- sharedscripts : 로그파일이 여러개 있어도 스크립트를 공유하여 prerotate, postrotate 스크립트를 한번만 실행
- nosharedscripts : 로그파일이 여러개일 경우 prerotate, postrotate 스크립트를 각각 실행(Default)
- copytruncate : 현재 로그파일 복사 후 원본 로그파일 크기 0으로 생성
- maxage [숫자] : 해당 숫자가 지난 백업 파일 삭제 ex) maxage 80 --> 80일이 지난경우 삭제
- size [사이즈] : 파일사이즈가 지정한 사이즈를 넘지않도록 설정
(Default : Byte, kilobytes인 경우 숫자k, Megabytes인 경우 숫자M, Gigabytes인 경우 숫자G)
5. 실행
수동 실행
/usr/bin/logrotate -f /etc/logrotate.conf
cron 등록 (매일 03시에 실행)
0 3 * * * /usr/bin/logrotate -f /etc/logrotate.conf
'WORK-LIFE > Linux' 카테고리의 다른 글
[Linux] while문 사용하기 (0) | 2024.02.20 |
---|---|
[SUSE] after.local 사용법 (0) | 2023.02.20 |
[SuSE] ISO 파일 Repository 설정 (0) | 2023.02.15 |
[REDHAT] Mirror Disk 교체 절차 (0) | 2023.01.10 |
[Redhat] Filesystem 연결 (0) | 2020.02.28 |