Скрипт генерации статистики для Free-SA |
|
|
|
Автор: Administrator
|
22.10.10 21:23 |
Скрипт генерации статистики для Free-SA |
|
Анализатор логов Squid Free-SA (http://free-sa.sourceforge.net/) значительно удобнее и быстрее SARG. Во FreeBSD его можно установить из портов (/usr/ports/www/free-sa/). Настраивается программа достаточно тривиально, достаточно использовать поставляемый в комплекте (после установки порта находится в /usr/local/etc/free-sa/) пример free-sa.conf.sample, поменяв там путь к логам Squid в директиве "log_file".
Через файл usertab (путь задается директивой username_file) можно определить псевдонимы для замены IP адресов именами пользователей, например, указав "192.168.0.1 Директор". При необходимости меняем путь к директории для сохранения сгенерированных отчетов (target_directory) и директории для сохранения временного кэша данных из лога Squid (директива cache_directory).
Базовые параметры можно переопределить вручную, запустив из командной строки:
free-sa -d 20.09.2010-21.09.2010 -l путь_к_логу_squid -o директория_для_сохранения_отчетов
Ниже представлен скрипт для генерации статистики по заданным интервалам:
#!/bin/bash
# Modification for free-sa # Idea: ## SARG - Daily/Weekly/Monthly Squid usage reports creation tool ## Written by Ugo Viti <
Данный адрес e-mail защищен от спам-ботов, Вам необходимо включить Javascript для его просмотра.
> ## Thanks for enanchements to: ## - martijn ## - Stas Degteff https://sourceforge.net/users/stas_degteff/ # Modification by Linjan <
Данный адрес e-mail защищен от спам-ботов, Вам необходимо включить Javascript для его просмотра.
>
FREESA="/usr/local/bin/free-sa" CONFIG="/usr/local/etc/free-sa/free-sa.conf" TMPFILE=`/bin/mktemp` ERRORS="${TMPFILE}.errors"
# Date Calc MANUALDATE=$2 case "$(uname)" in "FreeBSD") TODAY=$(date +%m/%d/%Y) YESTERDAY=$(date -v-1d +%m/%d/%Y) WEEKAGO=$(date -v-1w +%m/%d/%Y) MONTHAGO=$(date -v-1m +%m/01/%Y)-$(date -v-1m +%m/31/%Y) ;; *) TODAY=$(date --date "today" +%m/%d/%Y) YESTERDAY=$(date --date "1 day ago" +%m/%d/%Y) WEEKAGO=$(date --date "1 week ago" +%m/%d/%Y) MONTHAGO=$(date --date "1 month ago" +%m/01/%Y) ;; esac
manual () { if [ -z "$MANUALDATE" ] then echo "No date given, please specify a valid date (MM/DD/YYYY)" else $FREESA -f $CONFIG -d $MANUALDATE-$MANUALDATE fi }
today () { $FREESA -f $CONFIG -d $TODAY-$TODAY >$ERRORS 2>&1 } daily () { $FREESA -f $CONFIG -d $YESTERDAY-$YESTERDAY >$ERRORS 2>&1 }
weekly () { $FREESA -f $CONFIG -d $WEEKAGO-$YESTERDAY >$ERRORS 2>&1 }
monthly () { $FREESA -f $CONFIG -d $MONTHAGO-$YESTERDAY >$ERRORS 2>&1 }
case $1 in manual) manual ;; today) today ;; daily) daily ;; weekly) weekly ;; monthly) monthly ;; *) echo "Usage: $0 [OPTIONS]" echo echo "Allowed options:" echo " manual, Create Manual report" echo " date format is MM/DD/YY" echo " today, Create Today report" echo " daily, Create Daily report" echo " weekly, Create Weekly report" echo " monthly, Create Monthly report" exit 0 esac
Помещаем данный скрипт в директорию, откуда будем его запускать, присваиваем права запуска и добавляем эти строки в crontab:
00 00 * * * freesa-reports daily 00 01 * * 1 freesa-reports weekly 30 02 1 * * freesa-reports monthly
|
оригинал: тут
|
Последнее обновление 25.10.10 08:36 |