Скрипт генерации статистики для 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 <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
|
|
|
|
Раздел: Корень / Администратору / Система / Syslog, ведение логов |
1.1, тигар (ok), 13:29, 22/09/2010 [ответить]
| +/– |
а зачем писать #!/bin/bash и вплетать что-то про freebsd? во фре этот ... шелл не ставится в туда. это во-первых. во-вторых: замена s/bash/sh/ че, сделает скрипт не работоспособным?;)
btw,
date: illegal option -- -
usage: date [-jnu] [-d dst] [-r seconds] [-t west] [-v[+|-]val[ymwdHMS]] ...
[-f fmt date | [[[[[cc]yy]mm]dd]HH]MM[.ss]] [+format]
| |
1.2, Vit (??), 15:48, 22/09/2010 [ответить]
| +/– |
free-sa - тупит на первую строку в лог файле от newsyslog'а
| |
|
2.6, saper (??), 13:21, 21/07/2011 [^] [^^] [^^^] [ответить]
| +/– |
Я могу реализовать поддержку новых syslog-ов, но для этого, как я уже писал тут и в других местах, мне нужен образец файла журнала. Его можно выслать на e-mail, указанный документации к программе.
| |
|
1.5, drurus (?), 11:53, 29/09/2010 [ответить]
| +/– |
надо маны читать вместо написания гигантских скриптов.
-d day и тд ;)
| |
1.7, saper (??), 22:31, 12/09/2014 [ответить]
| +/– |
Спасибо за то, что поддержали программу и написали скрипт в своё время. Сейчас в программе есть много улучшений, например в Free-SA 2.0.0b6p7 можно указывать в качестве даты today или yesterday для формирования отчётов соответственно за сегодня и вчера.
| |
|