아파치 로그 관련 cron 설정

아파치 로그의 관리를 용이하게 하고, 로그파일이 너무 커지는 것을 막기 위해 매일 백업한다.
그리고 한달치 로그를 모아 gzip으로 압축한다.

이 과정은 다음과 같이 설정한다.

먼저 apache_log.sh, apache_log_gz.sh를 다음과 같이 만든다

apache_log.sh

# Apache Web Server Stop
YDATE=`date –date ‘1 days ago’ +%y%m%d`
echo ” Apache Web Server Stop….”
/usr/local/apache/bin/apachectl stop
# Apache Log Backup
echo “Apache Log Backup”
/bin/cp /usr/local/apache/logs/scampus-error_log /usr/local/apache/logs/scampus-
error.$YDATE.log
/bin/cp /usr/local/apache/logs/scampus-access_log /usr/local/apache/logs/scampus
-access.$YDATE.log
/bin/cp /usr/local/apache/logs/tcampus-error_log /usr/local/apache/logs/tcampus-
error.$YDATE.log
/bin/cp /usr/local/apache/logs/tcampus-access_log /usr/local/apache/logs/tcampus
-access.$YDATE.log
/bin/cp /usr/local/apache/logs/mod_jk.log /usr/local/apache/logs/mod_jk.$YDATE.l
og
echo “Apache Log Null Copy”
cat /dev/null > /usr/local/apache/logs/scampus-error_log
cat /dev/null > /usr/local/apache/logs/scampus-access_log
cat /dev/null > /usr/local/apache/logs/tcampus-error_log
cat /dev/null > /usr/local/apache/logs/tcampus-access_log
cat /dev/null > /usr/local/apache/logs/mod_jk.log
# Apache Web Server Start
echo “Apache Web Server Start”
/usr/local/apache/bin/apachectl start

apache_log_gz.sh

# Apache Web Server Stop
YMONTH=`date –date ‘1 month ago’ +%Y%m`
YMONTH2=`date –date ‘1 month ago’ +%y%m`
echo ” 지난달의 로그를 백업합니다…..”
# Apache Log Backup
tar cvPf /usr/local/apache/logs/$YMONTH.tar /usr/local/apache/logs/*$YMONTH2*log
*
/bin/rm /usr/local/apache/logs/*$YMONTH2*log.gz
echo “백업 끝!” 

두 파일의 퍼미션을 755로 준다.

크론에 다음과 같이 설정한다

[root@websvr1 root]# crontab -l
# 아파치 로그 백업
0 4 * * * /apache_log.sh
15 4 1 * * /apache_log_gz.sh

답글 남기기

이메일은 공개되지 않습니다. 필수 입력창은 * 로 표시되어 있습니다.