개발자의 노트
반응형

REDIS 같은 경우 로그 파일이 하나의 파일로 계속 쌓인다.

logrotate를 통해 log를 날짜별로 rotation 해보자.


logrotate의 기본 설정 값을 /etc/logrotate.conf 에 있다.


# vi /etc/logrotate.conf


그리고 각각의 logrotate 설정은 /etc/logrotate.d 폴더 아래에 구성한다.

대략 아래와 같은 구조


# ll /etc/logrotate.d/

total 24

-rw-r--r-- 1 root root 103 Dec 10 22:28 dracut

-rw-r--r-- 1 root root 329 Jan 15  2011 psacct

-rw-r--r-- 1 root root 210 Sep  9 23:46 syslog

-rw-r--r-- 1 root root 287 Jan 14 23:41 varnish

-rw-r--r-- 1 root root 100 Oct 17 19:02 yum


Redis 로그를 rotate 설정하려면 /etc/logrotate.d 폴더에 redis라는 이름으로 파일을 만들면 된다.

(Redis 로그가 저장되는 실제 파일 위치가 /log/redis/redis.log 로 설정되어있다고 하자)


 

# vi /etc/logrotate.d/redis

/log/redis/redis.log {

    daily

    rotate 30

    copytruncate

    delaycompress

    compress

    dateext

    notifempty

    missingok

}


log rotate를 강제 갱신해보자. (옵션 -f)


# /usr/sbin/logrotate -vf /etc/logrotate.conf


Redis 로그가 저장되는 폴더(/log/redis)를 조회해보면 날짜별 로그가 만들어졌다.


# ll

total 4152

-rw-r--r-- 1 root root       0 Mar  4 02:40 redis.log

-rw-r--r-- 1 root root 4250332 Mar  4 02:40 redis.log-20140304


logrotate.status 를 조회해보면 진행 정보를 확인할 수 있다.


# vi /var/lib/logrotate.status

logrotate state -- version 2

"/var/log/yum.log" 2014-3-4

"/var/log/dracut.log" 2014-3-4

"/var/log/wtmp" 2014-3-4

"/var/log/spooler" 2014-3-4

"/var/log/btmp" 2014-3-4

"/var/log/varnish/*.log" 2013-8-7

"/var/log/maillog" 2014-3-4

"/log/redis/redis.log" 2014-3-4

"/var/log/secure" 2014-3-4

"/var/log/messages" 2014-3-4

"/var/log/cron" 2014-3-4

"/var/account/pacct" 2013-8-6


logrotate의 /etc/cron.daily/logrotate 스크립트에서 의해 구동되고, 주기는 매일 오전 4시(4am)가 기본값이다.

따라서, 시간대나 주기를 변경하고 싶다면 cron job에 별도로 설정을 하면 된다.

방법은?


/etc/cron.daily/logrotate 파일을 다른 폴더에 이동하고 이름은 logrotate.sh 로 변경한다.

그리고 /etc/cron.d/ 아래에 0 23 * * * root /path/to/logrotate.sh 이런 식으로 cron job 을 설정하면 된다.



참고:

http://articles.slicehost.com/2010/6/30/understanding-logrotate-on-centos-part-1

http://articles.slicehost.com/2010/6/30/understanding-logrotate-on-centos-part-2

profile

개발자의 노트

@곽코딩

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!