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 |