본문 바로가기

Linux/구축 관련

Logrotate



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