apache log rotate 시키기
2012.08.14 19:22
원문 : http://www.ischo.net -- 조인상 // 시스템 엔지니어
Writer : http://www.ischo.net -- ischo // System Engineer in Replubic Of Korea
+++++++++++++++++++++++++++++++++++++++++++++++++++++++
원문 : http://www.ischo.net -- 조인상 //시스템 엔지니어
+++++++++++++++++++++++++++++++++++++++++++++++++++++++
rpm 으로 설치되어있는 log rotate를 사용하여 각종 로그 rotate 시키기.
1. rpm 설치 확인
# rpm -qa | grep logrotate
2. 로그 대상 확인 (소스컴파일된 아파치)
: /usr/local/apache/logs/*log
3. log rotate 설정
# cd /etc/logrotate.d
# ls
acpid cyrus-imapd mgetty privoxy radiusd samba squid tux vsftpd.log
conman exim kdm named psacct rpm setroubleshoot syslog up2date wpa_supplicant
cups httpd mailman ppp quagga sa-update snmpd tomcat5 uucp yum
-- 기존설정 파일을 하나 복사해서 사용할 것임
# cp httpd apache-log
# vi apache-log
/var/log/httpd/*log {
missingok
notifempty
sharedscripts
postrotate
/sbin/service httpd reload > /dev/null 2>/dev/null || true : 여기는 rpm 설치된 아파치를 위해서 설정된 부분임.
endscript 소스컴파일된 아파치를 reload 시킬수 없으므로 수정
}
--> 다음과 같이 수정
/usr/local/apache/logs/*_log {
missingok
notifempty
sharedscripts
daily : 매일
rotate 90 : 90일간
postrotate
/bin/kill -HUP `cat /usr/local/apache/logs/httpd.pid 2 > /dev/null` 2 > /dev/null || true : 아파치 reload
endscript
}
4. 테스트
# logrotate -d /etc/logrotate.conf
설정오류가 있다면 여기서 오류가 남.
* 참고
이 logrotate 설정은 다음 설정파일에 의해서 매일 동작한다.
# cat /etc/crontab
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
HOME=/
# run-parts
01 * * * * root run-parts /etc/cron.hourly
02 4 * * * root run-parts /etc/cron.daily
22 4 * * 0 root run-parts /etc/cron.weekly
42 4 1 * * root run-parts /etc/cron.monthly
logrotate는 위 디렉토리들에 모두 등록되어있으므로 daily 설정이라면 매일 04시 02분에 동작할 것이다.