The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



Индекс форумов
Составление сообщения

Исходное сообщение
"Раздел полезных советов: Скрипт генерации статистики для Fre..."
Отправлено auto_tips, 22-Сен-10 13:29 
Анализатор логов 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 <ugo.viti@initzero.it>
   ## Thanks for enanchements to:
   ## - martijn
   ## - Stas Degteff https://sourceforge.net/users/stas_degteff/
   # Modification by Linjan <tank1992@gmail.com>

   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


URL:
Обсуждается: https://www.opennet.ru/tips/info/2440.shtml

 

Ваше сообщение
Имя*:
EMail:
Для отправки ответов на email укажите знак ! перед адресом, например, !user@host.ru (!! - не показывать email).
Более тонкая настройка отправки ответов производится в профиле зарегистрированного участника форума.
Заголовок*:
Сообщение*:
 
При общении не допускается: неуважительное отношение к собеседнику, хамство, унизительное обращение, ненормативная лексика, переход на личности, агрессивное поведение, обесценивание собеседника, провоцирование флейма голословными и заведомо ложными заявлениями. Не отвечайте на сообщения, явно нарушающие правила - удаляются не только сами нарушения, но и все ответы на них. Лог модерирования.



Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру