I use the following scripts for rotation: ------ rotate.sh ------- #!/bin/sh SQUID_HOME=/opt/squid SQUID_VERSION=2.5.13 SQUID_LOG_DIR=${SQUID_HOME}/shared/cache/logging SQUID_LOG_BACKUP=${SQUID_HOME}/shared/logging SLEEP_PROG=/bin/sleep DATE_PROG=/bin/date #Rotate squid logs ${SQUID_HOME}/${SQUID_VERSION}/sbin/squid -k rotate #Wait 2 minutes, to be certain Squid rotation is finished ${SLEEP_PROG} 120 #cache_access.log.0 is now the most recent logfile. Rename this to #cache_access-DATE-HOUR.log, and move to the archive directory LAST_HOUR=`${DATE_PROG} --date "1 hour ago" +%F-%H%M` LAST_DATE=`${DATE_PROG} --date "1 hour ago" +%F` mkdir -p ${SQUID_LOG_BACKUP}/old-logs/${LAST_DATE} mv ${SQUID_LOG_DIR}/access.log.0 ${SQUID_LOG_BACKUP}/old-logs/${LAST_DATE}/access-${LAST_HOUR}.log mv ${SQUID_LOG_DIR}/cache.log.0 ${SQUID_LOG_BACKUP}/old-logs/${LAST_DATE}/cache-${LAST_HOUR}.log ------ rotate.sh ------- This is run at 00:00, 08:00 and 18:00. And at 04:30, there's a script that bzips the logs: ------ bzip.sh ------ #!/bin/sh SQUID_HOME=/opt/squid DATE_PROG=/bin/date BZIP_PROG=/usr/bin/bzip2 SQUID_LOGS=${SQUID_HOME}/shared/logging/old-logs LAST_DATE=`date --date "1 day ago" +%F` ## bzip2 the logfiles for f in ${SQUID_LOGS}/${LAST_DATE}/*.log; do ${BZIP_PROG} $f done ------ bzip.sh ------ Crontab looks like: 0 0,8,20 * * * /opt/squid/support/rotate.sh > /dev/null 2>&1 30 4 * * * /opt/squid/support/bzip-logs.sh > /dev/null 2>&1 Joost