Скрипт геренации статистики squid
Заказчик заказал чтоб логи каждый день создавалась по следующими свойству, каждые 24 часов за прошлый день и ложись в пути ${dst}/2010/01/14 и в каждого первого числа создавалась за месяц по адресу ${dst}/2010/01/month. Было принято решение написать не большой sh скрипт и поместить его в cron
#########################################################################################
# Created: Zakharchenko Andrey Ruslanovich
# Date: 2010.01.16
# Description: Скрипт генерации статистики squid по средствам sarg
#########################################################################################
#--- основные переменные
dst='/usr/local/www/data/stat'
sarg='/usr/local/bin/sarg'
create_dir='/bin/mkdir -p'
ddate='/bin/date'
check=0
#--- переменные для дат
current_month_number=`${ddate} "+%m"`
last_month_number=${current_month_number}
current_year_number=`${ddate} "+%y"`
last_year_number=${current_year_number}
current_day_number=`${ddate} "+%d"`
last_day_number=${current_day_number}
#--- составляем основотую команду
command="${ddate} -v${current_day_number}d -v${last_month_number}m -v${last_year_number}y -v-1d "
#--- если сегодня 2010.01.01
if ([ `${ddate} +%m` -eq 1 ] && [ `${ddate} +%d` -eq 1 ])
then
${create_dir} ${dst}/`$command +%Y`/`$command +%m`/"month"
${sarg} -d 01/`$command +%m`/`$command +%Y`-`$command +%d`/`$command +%m`/`$command +%Y` -o ${dst}/`$command +%Y`/`$command +%m`/`$command +%d`
${create_dir} ${dst}/`$command +%Y`/`$command +%m`/`$command +%d`
${sarg} -d `$command +%d`/`$command +%m`/`$command +%Y`-`$command +%d`/`$command +%m`/`$command +%Y` -o ${dst}/`$command +%Y`/`$command +%m`/`$command +%d`
check=1
#--- если сегодня первое число любого месяца кроме января
elif ([ `${ddate} +%d` -eq 1 ] && [ ${check} -ne 1 ] && [ `${ddate} +%m` -ne 1 ])
then
${create_dir} ${dst}/`$command +%Y`/`$command +%m`/month
${sarg} -d 01/`$command +%m`/`$command +%Y`-`$command +%d`/`$command +%m`/`$command +%Y` -o ${dst}/`$command +%Y`/`$command +%m`/`$command +%d`
${create_dir} ${dst}/`$command +%Y`/`$command +%m`/`$command +%d`
${sarg} -d `$command +%d`/`$command +%m`/`$command +%Y`-`$command +%d`/`$command +%m`/`$command +%Y` -o ${dst}/`$command +%Y`/`$command +%m`/`$command +%d`
#--- любое число кроме 1
elif [ `${ddate} +%d` -ne 1 ]
then
${create_dir} ${dst}/`$command +%Y`/`$command +%m`/`$command +%d`
${sarg} -d `${ddate} -v-1d +%d/%m/%Y`-`${ddate} -v-1d +%d/%m/%Y` -o ${dst}/`${command} +%Y`/`${command} +%m`/`${command} +%d`
fi

.gif)
