Linux

Aapache_logrotate script

techapi 2025. 3. 12. 15:55
반응형

1. logrotate script

 

#/bin/sh

#  apache_logrotate : apache log rotate

#

#       1. apache accesslog error로그를 하루단위로 rotate

#       2. accesslog 15 errorlog 3일치 보관후 삭제

#      

 

LOG_PATH="/usr/local/apache/logs"

ACCESS_LOG_FILE="access_log"

ALOG_DATE="7"  # access log 보관일수 8일로 수정 

ERROR_LOG_FILE="error_log"

MODSEC_LOG_FILE="modsec.log"

ELOG_DATE="3"   # error log 보관일수

 

APACHE="/usr/local/apache/bin/apachectl"

 

cd $LOG_PATH

 

YESTERDAY=`date +%Y%m%d --date=yesterday`

DAYS_AGO=`date +%Y%m%d --date=-${ELOG_DATE}day`

 

for LIST in *

do

        if test -d $LIST

        then

                mv $LOG_PATH/$LIST/$ACCESS_LOG_FILE $LOG_PATH/$LIST/$ACCESS_LOG_FILE.$YESTERDAY

        fi

done

 

# errorlog rotate

mv $ERROR_LOG_FILE $ERROR_LOG_FILE.$YESTERDAY

# public accesslog rotate

mv $ACCESS_LOG_FILE $ACCESS_LOG_FILE.$YESTERDAY

 

mv $MODSEC_LOG_FILE $MODSEC_LOG_FILE.$YESTERDAY

 

#clean up access log

cd $LOG_PATH && find . -name "$ACCESS_LOG_FILE.*" -mtime +$ALOG_DATE  -exec rm -f {} \;

# clean up error log

rm -f $LOG_PATH/$ERROR_LOG_FILE.$DAYS_AGO

 

rm -f $LOG_PATH/$MODSEC_LOG_FILE.$DAYS_AGO

# clean up public access log

rm -f $LOG_PATH/$ACCESS_LOG_FILE.$DAYS_AGO

 

#/etc/init.d/firewall start || (/usr/local/sbin/iptables -nvL| mail linux@gabia.com -s "`hostname` Firewall Start Fail")

 

$APACHE restart

 

 

2. /usr/local/check_mail/rmAccountMail.sh

 

#!/bin/sh

 

limit=`expr 1500 \* 1024 \* 1024`

 

for account in `ls /var/spool/mail`

do

        size=`du -sb /var/spool/mail/${account} | awk '{print $1}'`

 

        if [ $size -ge $limit ]

        then

                result=`cp -f /dev/null /var/spool/mail/${account}`

        fi

done

2

반응형

'Linux' 카테고리의 다른 글

aws disk 용량 증설  (0) 2025.03.12
Daemon check sctipt  (0) 2025.03.12
PDFtk(PDF Toolkit) 설치  (0) 2025.03.12
ClamAV설치 (linux 백신)  (0) 2025.03.12
Denyhost 설치  (0) 2025.03.11