Архив

Архив 15 Январь 2010

Скрипт геренации статистики squid

15 Январь 2010

Заказчик заказал чтоб логи каждый день создавалась по следующими свойству, каждые 24 часов за прошлый день и ложись в пути ${dst}/2010/01/14 и в каждого первого числа создавалась за месяц по адресу ${dst}/2010/01/month. Было принято решение написать не большой sh скрипт и поместить его в cron

#!/bin/sh
#########################################################################################
#   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