로그 파일을 주기적으로 압축하고 이름을 바꾸어 관리하는 명령어이다.

사용법 : logrotate [옵션] <설정파일> 
-d : 디버거 모드 
-f, --force : 강제적으로 실행한다. 이는 새로운 목록이 추가된 경우나, 오래된 로그 파일을 수동으로 직접 삭제한 경우 유용하다. 
-s, --state [statefile] : 지정된 정책 파일을 사용하여 logrotate를 실행한다. 
--usage : 간단한 사용법을 보여준다. 

cron은 백업과 같이 주기적으로 실행하는 명령들을 자동으로 처리하도록 해주는 도구로, 설정 내용은 /etc/crontab에 있다.
logrotate는 log 파일들을 주기적으로 관리하는 도구다. 지정된 주기에 맞춰서 각각의 log 파일들의 이름을 바꾸거나, 압축하거나 삭제한다. 보통 /etc/cron.daily에 logrotate라는 스크립트를 두어 /usr/sbin/logrotate를 /etc/logrotate.conf라는 설정에 맞춰 매일 실행하게 되어 있다.
/etc/cron.daily/logrotate 파일을 한 번 살펴보자.

# cat /etc/cron.daily/logrotate 
# !/bin/sh 
/usr/sbin/logrotate /etc/logrotate.conf 

/etc/cron.daily/logrotate 파일은 /etc/logrotate.conf파일의 참조하여 실행한다.
그럼, 이파일을 한번 살펴 보도록 하자.

# cat /etc/logrotate.conf 
weekly #1주일에 한번씩 로그 파일이 순환한다. 
rotate 4 #최대 4개까지의 백업 로그 파일을 남긴다. 
create #4개의 로그 파일이 생성된 후 새로운 로그파일을 생성한다. 
compress #압축으로 로그파일을 보관한다. 
include /etc/logrotete.d #rpm 패키지 로그 rotation 정보가 있는 디렉토리 
/var/log/wtmp { #/var/log/wtmp 로그 파일에 대한 설정이다. 
     monthly  #한달에 한번씩 로그파일을 순환한다. 
create 0664 root utmp #0664는 생성하는 파일의 허가권, root는 소유자, utmp는 그룹 
     rotate 1   #백업 로그가 없이 하나의 로그파일만이 생성될 것이다. 
               } 


위의 설정에서 rpm 패키지 로그 로테이션 정보가 있는 디렉토리를 살펴보자.
각 로그 파일 설정을 살펴 보면 각각의 정보를 볼 수 있을 것이다.

# ls /etc/logrotate.d/ 
apache  mysqld  named  proftpd  rpm  snmpd  squid  syslog  tux  up2date 

위의 파일 중 syslog 파일을 한 번 살펴보자. syslog 파일에는 message나 secure mailog같은 중요한 로그 파일에 대한 로테이션 정보를 담고 있다.

# cat /etc/logrotate.d/syslog 
/var/log/messages /var/log/secure /var/log/maillog /var/log/spooler /var/log/boot.log /var/log/cron { 
    sharedscripts 
    postrotate 
        /bin/kill -HUP `cat /var/run/syslogd.pid 2> /dev/null` 2> /dev/null || true 
    endscript 
} 
2005/06/17 23:24 2005/06/17 23:24

트랙백 주소 :: 이 글에는 트랙백을 보낼 수 없습니다