#!/bin/bash #http log rotation dor apache2 on RH alias rm=rm HOSTNAME=$(hostname) DATE=$(date +%Y%m%d) LOGDIR=/usr/local/apache2/logs echo "Starting HTTP rotation `date +%Y%m%d`" if [ -e ${LOGDIR}/access_log ]; then cd ${LOGDIR} mv access_log access_log.`hostname`-`date +%Y%m%d` mv error_log error_log.`hostname`-`date +%Y%m%d` gzip access_log.`hostname`-`date +%Y%m%d` gzip error_log.`hostname`-`date +%Y%m%d` find . -mtime +30 -exec rm {} \; echo "access_log is not found" >> /var/log/messages fi for aclogs in $(find ${LOGDIR} -name \*-access_log) ; do mv $aclogs $aclogs.$HOSTNAME.$DATE; done for erlogs in $(find ${LOGDIR} -name \*-error_log) ; do mv $erlogs $erlogs.$HOSTNAME.$DATE; done /usr/local/apache2/bin/apachectl stop /usr/local/apache2/bin/apachectl start sleep 6 for aclogs in $(find ${LOGDIR} -name \*-access_log.$HOSTNAME.$DATE) ; do gzip $aclogs; done for erlogs in $(find ${LOGDIR} -name \*-error_log.$HOSTNAME.$DATE) ; do gzip $erlogs; done echo " HTTP rotation ended at `date +%Y%m%d`" exit 0