로그 파일을 주기적으로 압축하고 이름을 바꾸어 관리하는 명령어이다.
cron은 백업과 같이 주기적으로 실행하는 명령들을 자동으로 처리하도록 해주는 도구로, 설정 내용은 /etc/crontab에 있다.
logrotate는 log 파일들을 주기적으로 관리하는 도구다. 지정된 주기에 맞춰서 각각의 log 파일들의 이름을 바꾸거나, 압축하거나 삭제한다. 보통 /etc/cron.daily에 logrotate라는 스크립트를 두어 /usr/sbin/logrotate를 /etc/logrotate.conf라는 설정에 맞춰 매일 실행하게 되어 있다.
/etc/cron.daily/logrotate 파일을 한 번 살펴보자.
/etc/cron.daily/logrotate 파일은 /etc/logrotate.conf파일의 참조하여 실행한다.
그럼, 이파일을 한번 살펴 보도록 하자.
위의 설정에서 rpm 패키지 로그 로테이션 정보가 있는 디렉토리를 살펴보자.
각 로그 파일 설정을 살펴 보면 각각의 정보를 볼 수 있을 것이다.
위의 파일 중 syslog 파일을 한 번 살펴보자. syslog 파일에는 message나 secure mailog같은 중요한 로그 파일에 대한 로테이션 정보를 담고 있다.
사용법 : 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 }