>>Подскажите как сделать чтоб squid собирал один access.log файл с начала месяца
>>по конец, а то потом гемор при анализе sarg~ом.
>
>какие проблемы то? squid -k rotate 1-го числа каждого месяца
>можешь в крон это дело запихать после ноля часов
>будет создавать access.log с доп расширениями .0 .1 и так далее
>по умолчанию до 9
>sarg натравливай на нужный тебе лог.
Есть вариант просто скрипта на шелле:
1. сарг запускается каждое воскресенье для подробной статистики (чтобы месяц не ждать и при надобности самых злобных отлучать от инета вовремя) - это в скриптах logrotate прописано как prerotate параметр. Хранится скажем 10 отчетов (10 недель)
2. тот же сарг, но с более скромным конфигом отрабатывает из скрипта по крону 1-го числа, вот скрипт:
#!/bin/bash
YESTERDAY=$(date --date "1 day ago" +%d/%m/%Y)
MONTH_AGO=$(date --date "1 day ago" +01/%m/%Y)
TEMP_DIR=/tmp/squid
TIMESTAMP=/var/log/squid/token
SQUID_LOG_PATH=/var/log/squid
mkdir ${TEMP_DIR}
# Copy access.log.X.gz that newer than "token"
for LOG_FILE in ${SQUID_LOG_PATH}/access.log*; do
if [ ${LOG_FILE} -nt ${TIMESTAMP} ]; then
cp ${LOG_FILE} ${TEMP_DIR}
fi
done
# Gunzipping access.log.X files
gunzip ${TEMP_DIR}/*.gz
# Concatenate all logs to entire file
cd ${TEMP_DIR}
cat `ls -r` > ${TEMP_DIR}/summary.log
# Call SARG
/usr/sbin/sarg -l ${TEMP_DIR}/summary.log -f /etc/sarg/sarg.monthly \
-x -z -d ${MONTH_AGO}-${YESTERDAY}
rm -rf ${TEMP_DIR}
touch ${TIMESTAMP}
exit 0