Apache(1.3.3)를 /usr/local/apache 에 설치했다는 가정하에 설명합니다.
1. Shell Script 수정
2. Crontab 추가
1. Shell Script 수정 (/etc/rc.d/init.d/httpd 라고 가정)
#!/bin/sh
WEB_ROOT=/usr/local/apache
LOG_ROOT=$WEB_ROOT/var/log
ACCESS_LOG=$LOG_ROOT/access_log
ERROR_LOG=$LOG_ROOT/error_log
case "$1" in
start)
echo -n "Starting httpd "
$WEB_ROOT/sbin/apachectl start
echo
;;
stop)
echo -n "Stopping httpd"
$WEB_ROOT/sbin/apachectl stop
echo
;;
restart)
echo -n "Restarting httpd "
LOG_EXT=`date +%Y%m%d-%H%M%S`
mv $ACCESS_LOG $ACCESS_LOG.$LOG_EXT
mv $ERROR_LOG $ERROR_LOG.$LOG_EXT
$WEB_ROOT/sbin/apachectl restart
# -- Log 분석 툴 돌리시고
# -- 필요하다면 압축
# gzip $ACCESS_LOG.$LOG_EXT
# gzip $ERROR_LOG.$LOG_EXT
;;
*)
echo "Usage: $0 {start|stop|restart}"
exit 1
esac
c.f) chmod 755 /etc/rc.d/init.d/httpd (잊지 마시고.)
2. Crontab 수정
# crontab -e [ENTER]
0 0 * * * /etc/rc.d/init.d/httpd restart <-- 이 행을 추가
위와 같이 하면 log directory에 하루에 한번씩
access_log.19990426-000003
error_log.19990426-000002
같은 화일이 생길 겁니다.
물론 현재의 것은 원래 이름 그대로 동작하고요.
단, 약 1~2초간 Log는 없을 수 도 있습니다.