Logrotate
설명
리눅스에서 제공하는 패키지로, 리눅스 내의 모든 로그들을 관리할 수 있다.
log가 쌓이다보면 파일 크기가 점점 거대해지게 되는데 이는 디스크 용량에 압박을 주며 성능저하를 야기할 수 있다.
따라서 일정기간 지난 로그들을 비워주거나 백업해주어야 하는데 수동으로 이를 진행할 경우 굉장히 번거로운 작업이므로
logrotate를 통해 자동화한다.
설치 확인 및 설치
기본적으로 CentOS나 Redhat의 경우 설치되어 있다.
[root@localhost ~]# rpm -qa | grep logrotate
logrotate-3.7.8-26.el6_7.x86_64
logrotate.conf
[root@localhost ~]# vi /etc/logrotate.conf
# see "man logrotate" for details
# rotate log files weekly
weekly
# keep 4 weeks worth of backlogs
rotate 4
# create new (empty) log files after rotating old ones
create
# use date as a suffix of the rotated file
dateext
# uncomment this if you want your log files compressed
#compress
# RPM packages drop log rotation information into this directory
include /etc/logrotate.d
# no packages own wtmp and btmp -- we'll rotate them here
/var/log/wtmp {
monthly
create 0664 root utmp
minsize 1M
rotate 1
}
/var/log/btmp {
missingok
monthly
create 0600 root utmp
rotate 1
}
# system-specific logs may be also be configured here.
항목별 설명
# rotate log files weekly (로그파일의 순환 기간)
yearly (매년)
monthly (매월)
weekly (매주)
daily (매일)
# keep 4 weeks worth of backlogs (순환 파일 개수)
rotate 값 ## 순환기간이 weekly, 파일 개수를 3일 경우 3주동안 log를 쌓은 후 순환한다.
# create new (empty) log files after rotating old ones (rotate후, 새로운 빈 파일 생성 여부)
create
# use date as a suffix of the rotated file (rotate된 파일명에 날짜 입력 여부)
dateext
# uncomment this if you want your log files compressed (압축 여부 gzip)
#compress
# RPM packages drop log rotation information into this directory (logrotate 설정 파일 경로)
include /etc/logrotate.d
항목별 옵션
daily : 매일 순환
weekly : 매주 순환
monthly : 매달 순환
yearly : 매년 순환
rotate : 파일갯수
순환될 : 파일갯수
compress : 순환된 로그파일 압축(gzip)
nocompress : 순환된 로그파일을 압축하지 않는다(기본값)
compresscmd 압축명 : gzip 이외의 압축프로그램 지정
uncompresscmd : 압축해제 명령 지정(기본값 : gunzip)
compressext 확장명 : 압축된 백업 로그파일에 지정할 확장자 설정
compressoptions 옵션 : 압축 프로그램에 대한 옵션 설정(-9 : 압축률 최대)
dateext : 로그파일에 YYYYMMDD형식의 확장자 추가
errors 메일주소 : 에러 발생시 지정된 메일주소로 메일발송
extention 확장자명 : 순환된 로그파일의 확장자 지정
ifempty : 로그파일이 비어있는 경우 순환(기본값)
noifempty : 로그파일이 비어있는 경우 순환하지 않는다
mail 메일주소 : 순환후 이전 로그파일을 지정된 메일주소로 발송
maxage : count로 지정된 날수가 지난 백업 파일 삭제
missingok : 로그파일이 없을 경우에도 에러 처리하지 않는다
prerotate / endscript : 순환작업 전에 실행할 작업 설정
postrotate / endscript : 순환작업 후에 실행할 작업 설정
sharedscripts : prerotate, postrotate 스크립트를 한번만 실행
size 사이즈 : 순환 결과 파일사이즈가 지정한 크기를 넘지않도록 설정
copytruncate : 현재 로그파일의 내용을 복사하여 원본 로그파일의 크기를 0으로 생성
각 항목별 옵션은 아래 링크에서 가져왔습니다.
logrotate.d
이 외의 서비스에 관한 각 로그 설정
예시)
[root@localhost ~]# vi /etc/logrotate.d/test
/usr/local/apache/logs/error_log {
monthly
rotate 1
missingok
}
테스트 실행 (실제로 순환x)
[root@localhost ~]# /usr/sbin/logrotate -d /etc/logrotate.d/test
강제 실행
[root@localhost ~]# /usr/sbin/logrotate -f /etc/logrotate.d/test
강제 실행 후 error_log.1 파일 생성 확인
[root@localhost ~]# ls /usr/local/apache/logs/
'Linux > 구축 관련' 카테고리의 다른 글
JDK, JRE (JAVA) 설치 (0) | 2016.11.18 |
---|---|
Multipath 구성 (0) | 2016.11.10 |
vsftp를 이용한 ftp 환경 구축 (0) | 2016.08.25 |
sftp를 이용한 파일 전송 (0) | 2016.08.09 |
CentOS 6.x 설치 !! (0) | 2016.08.09 |