Logrotate
서버의 상태 확인과 장애 대응을 위해 로그를 수집합니다. 이때, 로그들이 쌓이면서 크기가 커지게 되는데 로그가 너무 커지기 전에 관리되도록 설정하는 기능이 Logrotate 입니다.
OS 설치 시 가본적으로 설치 되어있으며 설치 확인방법은 다음과 같습니다.
<Debian 계열>
root@localhost:~# dpkg -l | grep logrotate
<Redhat 계열>
[root@localhost ~]# rpm -qa | grep logrotate
Logrotate 파일 구조
데몬 프로그램 : /usr/sbin/logrotate
Logrotate 데몬 설정파일 : /etc/logrotate.conf
Logrotate를 프로세스 설정파일 : /etc/logrotate.d/
Logrotate 작업내역 로그 : /etc/cron.daily/logrotate
Logrotate 실행 순서
logrotate.conf 설정 방법
- daily : 매일 실행
- weekly : 매주 실행
- monthly : 매달 실행
- yearly : 매년 실행
- rotate [갯수] : 갯수만큼만 보관
- compress : 해당되는 로그파일을 gzip형태로 압축
- compressext [압축형태] : 압축된 백업 로그파일에 지정할 확장자 설정 ex) .bz2
- nocompress : 해당되는 로그파일은 압축하지 않음(Default)
- compresscmd [압축실행파일 경로] : gzip 이외의 형태로 저장시 지정 ex) /bin/bzip2
- uncompresscmd [압축해제실행파일 경로] : 압축해제 명령 지정 (Default : gunzip)
- compressoptions [옵션] : 압축 옵션 설정 (-9 : 최대 압축률)
- 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)
logrotate.conf 예시
[root@server ~]# cat /etc/logrotate.d/apache
/server/apache2/logs/*log {
daily
rotate 5
notifempty
missingok
compress
sharedscripts
postrotate
/server/apache2/bin/apachectl graceful
endscript
}
daily : 일단위로 실행합니다
rotate 5 : 회전 주기를 설정합니다
notifempty : 로그파일의 내용이 없을경우 rotate 하지 않습니다
missingok : 로그파일이 없을경우 에러메시지를 출력하고 다음으로 실행합니다
compress : 로그파일을 압축합니다
sharedscripts : 여러개의 로그파일을 스크립트로 공유하여 실행합니다
postrotate : 실행 후 스크립트 파일 실행합니다 /server/apache2/bin/apachectl graceful
endscript : 실행 후 스크립트 파일 실행합니다
정상적으로 rotate 되는지 확인 하는 방법
Dry run (debugging)
-vd 옵션으로 디버깅을 해주면 된다.
-v : 결과출력 옵션
-d : 디버깅 옵션
/usr/sbin/logrotate -vd /etc/logrotate.conf
'Linux' 카테고리의 다른 글
Ubuntu 22.04 LTS SSH접속 안될 때 (1) | 2023.11.02 |
---|---|
Ubuntu 절전모드 설정 (0) | 2023.04.20 |
Ubuntu 추가 디스크 Mount (0) | 2023.04.20 |
awk 명령어 (0) | 2023.04.15 |
wc 명령어 (0) | 2023.04.15 |