The OpenNET Project / Index page

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



"SARG отчет за по каждому дню"
Вариант для распечатки  
Пред. тема | След. тема 
Форум Настройка Squid, Tor и прокси серверов (Учет работы пользователей, логи)
Изначальное сообщение [ Отслеживать ]

"SARG отчет за по каждому дню"  +/
Сообщение от aon78 (ok), 28-Фев-06, 15:01 
Помогите разобраться
как правильно создать отчет за каждый день

#! /bin/sh
DAY=$(date+%d/%m/%Y)

/usr/bin/sarg -d $DAY

очеты после срабатывания создаються за весь период работы Squida

Ответить | Правка | Cообщить модератору

Оглавление

Сообщения по теме [Сортировка по времени | RSS]


1. "SARG отчет за по каждому дню"  +/
Сообщение от KabanGSM (??), 03-Мрт-06, 12:25 
>Помогите разобраться
>как правильно создать отчет за каждый день
>
>#! /bin/sh
>DAY=$(date+%d/%m/%Y)
>
>/usr/bin/sarg -d $DAY
>
>очеты после срабатывания создаються за весь период работы Squida

squid -k rotate

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

2. "SARG отчет за по каждому дню"  +/
Сообщение от PavelRemail (ok), 04-Мрт-06, 07:37 
>Помогите разобраться
>как правильно создать отчет за каждый день
>#! /bin/sh
>DAY=$(date+%d/%m/%Y)

>/usr/bin/sarg -d $DAY

>очеты после срабатывания создаються за весь период работы Squida

Я у себя на сервере кручу по крону (в конце приведено) скрипт, приведенный ниже. Это исправленный скрипт, который был найден на сайте сквида или сарга, уже точно и не помню. Исправления касаются генерации недельных отчетов. Ротация логов происходит в этом же скрипте.


#!/usr/local/bin/bash
# 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/

VER=20050202

## What is this?
# sarg-reports (this file) is a simple bash script written to automate
# the SARG (a powerful squid log analyzer) reports and log management.
# Sarg it self, provide to end user a generic interface to create
# reports based on squid access log (begin of log to current date).
# sarg-reports (this script) is useful because it allow you to easly
# create and manage Daily, Weekly and Monthly reports.
# Try it, within 5 minutes you will be ready to rule :-)
# using sarg-reports is very easy, read the following 3 steps to know how

## Requirements
# a) An unix system with bash shell (like GNU/Linux, FreeBSD, etc...)
# b) Squid - http://www.squid-cache.org
# c) Sarg - http://web.onda.com.br/orso/sarg.html


##
## Installation guide and configuration parameters
##

# 1) Download Squid and Sarg, Install, Configure and Tune
#    they before continue reading

# 2) In root crontab (crontab -e) insert the following lines:
#    (the today report creation time depend mostly of your squid server
#    load average, tune it):
#
#    --- BEGIN ROOT CRONTAB ---
#    PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin
#    00 08-18/1 * * * sarg-reports today
#    00 00      * * * sarg-reports daily
#    00 01      * * 1 sarg-reports weekly
#    30 02      1 * * sarg-reports monthly
#    --- END ROOT CRONTAB ---
#
#    REMEMBER: if you use logrotate, configure it to rotate the logs within MONTHLY basis,
#              AFTER sarg-reports created the monthly html report.

# 3) Customize the following variables:
#    (Please, configure accurately the sarg.conf file before)
#
#        (SARG) The sarg executable location
#    (SQUID) The squid executable location
#      (CONFIG) The sarg main configuration file location
#      (LOGDIR) Location where logfiles lies
#(ROTATEDLOGFILE) Name of file where will be current log after log rotation
#     (HTMLOUT) Location where will be saved the reports
#   (PAGETITLE) The title of main index page
#     (LOGOIMG) Image logo to view in main index page
#    (LOGOLINK) HTTP web page link of logo
#       (DAILY) Word 'daily' translation, translate it to your language
#      (WEEKLY) Word 'weekly' translation, translate it to your language
#     (MONTHLY) Word 'monthly' translation, translate it to your language
# (EXCLUDELOG1) Exclude text from cron emails
#       +       (normally, sarg, during cron activity, if it don't find any valid records,
# (EXCLUDELOG2) it will output an error message (usually on 'today' reports).
#               I don't want to be warned by email about this, so, i wrote the 'text'
#               that will be never logged.
#               This is useful to receive email of real problems only (enjoy that)

#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
## Italian Language
#       SARG=/usr/bin/sarg
#     CONFIG=/etc/sarg/sarg.conf
#    HTMLOUT=/var/www/html/admin/log/proxy
#  PAGETITLE="Statistiche Proxy di $(hostname)"
#    LOGOIMG=http://www.initzero.it/images/initzero-logo.jpg
#   LOGOLINK=http://www.initzero.it
#      DAILY=Giornaliero
#     WEEKLY=Settimanale
#    MONTHLY=Mensile
#EXCLUDELOG1="SARG: Nessun records trovato."
#EXCLUDELOG2="SARG: Fine"
#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@


#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
## Russian Language
    SARG="/usr/local/bin/sarg"
    SQUID="/usr/local/sbin/squid"
    CONFIG=/usr/local/etc/sarg/sarg.conf
    LOGDIR=/var/log/squid
    ROTATEDLOGFILE=access.log.0
    HTMLOUT=/usr/local/www/internal/sarg-reports
    PAGETITLE="пФЮЕФ РП ЙУРПМШЪПЧБОЙА ФТБЖЖЙЛБ Squid"   # russian koi8-r
    LOGOIMG=http://litek.ru/images/logotop.gif
    LOGOLINK=http://litek.ru
    DAILY="еЦЕДОЕЧОЩК ПФЮЕФ"     # russian koi8-r
    WEEKLY="пФЮЕФ ЪБ ОЕДЕМА"     # russian koi8-r
    MONTHLY="пФЮЕФ ЪБ НЕУСГ"     # russian koi8-r
EXCLUDELOG1="SARG: Records in file:"
#EXCLUDELOG2="SARG: ïÔÞÅÔ ÕÓÐÅÛÎÏ ÓÇÅÎÅÒÉÒÏ×ÁÎ ×" # sarg.conf: language Russian_koi8
EXCLUDELOG2=""
#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@


######################################################################
## The configuration is end, so don't touch anything bellow

# TEMP Files
TMPFILE=/tmp/sarg-reports.$RANDOM
ERRORS="${TMPFILE}.errors"

# Date Calc
MANUALDATE=$2
case "$(uname)" in
"FreeBSD")
         TODAY=$(date +%d/%m/%Y)
     YESTERDAY=$(date -v-1d +%d/%m/%Y)
       WEEKAGO=$(date -v-1w +%d/%m/%Y)
      MONTHAGO=$(date -v-1m +01/%m/%Y)-$(date -v-1m +31/%m/%Y)
   ;;
#"OpenBSD")
#         TODAY=$(date +%d/%m/%Y)
#     YESTERDAY=$(date -r $((`date +%s` - 86400 )) +%d/%m/%Y)
#       WEEKAGO=$(date -r $((`date +%s` - 604800)) +%d/%m/%Y)
#      MONTHAGO=$(perl -e '@t=localtime(time); $y=$t[4]==0?$t[5]+1899:$t[5]+1900; $m=$t[4]==0?12:$t[4]; print "1/$m/$y-",$m==2?$y%4>0?28:29:$m==4||$m==6||$m==9||$m==11?30:31 ,"/$m/$y\n";')
#   ;;
*)
         TODAY=$(date --date "today" +%d/%m/%Y)
     YESTERDAY=$(date --date "1 day ago" +%d/%m/%Y)
       WEEKAGO=$(date --date "1 week ago" +%d/%m/%Y)
      MONTHAGO=$(date --date "1 month ago" +01/%m/%Y)-$(date --date "1 month ago" +31/%m/%Y)
   ;;
esac

# Fix for Red Hat 9 systems and coreutils prior to 5.0 version
export LC_ALL=C

# Main index.html creation
create_index_html ()
{
  echo -e "\
  <html>\n\
  <head>\n\
  <title>$PAGETITLE</title>\n\
  <META http-equiv=Content-Type content=\"text/html; charset=koi8-r\">\n\
  </head>\n\
  <body>\n\
  <div align=center>\n\
    <table border=0 cellspacing=6 cellpadding=7>\n\
      <tr>\n\
        <th align=center nowrap><b><font face=Arial size=4 color=green>$PAGETITLE</font></b></th>\n\
      </tr>\n\
      <tr>\n\
        <td align=center bgcolor=beige><font face=Arial size=3><a href=daily/>$DAILY</a></font></td>\n\
      </tr>\n\
      <tr>\n\
        <td align=center bgcolor=beige><font face=Arial size=3><a href=weekly/>$WEEKLY</a></font></td>\n\
      </tr>\n\
      <tr>\n\
        <td align=center bgcolor=beige><font face=Arial size=3><a href=monthly/>$MONTHLY</a></font></td>\n\
      </tr>\n\
    </table>\n\
  </div>\n\
  </body>\n\
  </html>" > $HTMLOUT/index.html
}

reports_autorm () {
  BAKLIST="${TMPFILE}.BAKLIST"
  BAKLISTTOLEAVELIST="${BAKLIST}.TOLEAVE.LIST"
  BAKLISTTOLEAVEFIND="${BAKLIST}.TOLEAVE.FIND"
  touch $BAKLIST $BAKLISTTOLEAVELIST $BAKLISTTOLEAVEFIND

  cd $DESTINATION

  find -name "*$BAKNAME*" -maxdepth 1 | sed -e 's/.\///' | grep -wv "." | sort 1> $BAKLIST

  let TOLEAVEDAYS="$DAYBAK+1"

  if [ $TOLEAVEDAYS -ge "0" ]
    then
      cat $BAKLIST | tail -n $TOLEAVEDAYS > $BAKLISTTOLEAVELIST
      for BAK in $(cat $BAKLISTTOLEAVELIST)
        do
          echo "! -name $BAK" >> $BAKLISTTOLEAVEFIND
        done
  fi

  CURRENTH=$(date +%H)
  CURRENTM=$(date +%M)
  if [ ${CURRENTH:0:1} == 0 ]
  then
    CURRENTH=${CURRENTH:1:1}
  fi
  if [ ${CURRENTM:0:1} == 0 ]
    then
      CURRENTM=${CURRENTM:1:1}
  fi
  let MINUTES="((($DAYBAK*24)+$CURRENTH)*60)+$CURRENTM+1"

  # Purging old backups, only if backup return "OK" status
  find $DESTINATION -name "*$BAKNAME*" $(cat $BAKLISTTOLEAVEFIND) -maxdepth 1 -mmin +$MINUTES -exec rm -rf {} \;
  #find $DESTINATION $(cat $BAKLISTTOLEAVEFIND) -maxdepth 1 -mmin +$MINUTES -exec rm -rf {} \;
}

# Functions
exclude_from_log ()
{
  cat $ERRORS | grep -v "$EXCLUDELOG1" | grep -v "$EXCLUDELOG2"
  rm -f $TMPFILE*
}

manual ()
{
  DAILYOUT=$HTMLOUT/$DAILY
  mkdir -p $DAILYOUT
  create_index_html
  if [ -z "$MANUALDATE" ]
    then
      echo "No date given, please specify a valid date (DD/MM/YYYY)"
    else
      $SARG -f $CONFIG -d $MANUALDATE -o $DAILYOUT
  fi
}

today ()
{
  DAILYOUT=$HTMLOUT/daily
  mkdir -p $DAILYOUT
  create_index_html
  $SARG -f $CONFIG -d $TODAY -o $DAILYOUT >$ERRORS 2>&1
  exclude_from_log
}

daily ()
{
  DAILYOUT=$HTMLOUT/daily
  mkdir -p $DAILYOUT
  create_index_html
  #Squid must be running !!
  $SQUID -k rotate
#  [ ! -e $LOGDIR/$ROTATEDLOGFILE ] &&
  touch $LOGDIR/$ROTATEDLOGFILE
  sleep 120
# $SARG -l $LOGDIR/$ROTATEDLOGFILE -f $CONFIG -d $YESTERDAY -o $DAILYOUT >$ERRORS 2>&1
  $SARG -l $LOGDIR/$ROTATEDLOGFILE -f $CONFIG -o $DAILYOUT >$ERRORS 2>&1    
  cat $LOGDIR/$ROTATEDLOGFILE>>$LOGDIR/weekly.log
  cat $LOGDIR/$ROTATEDLOGFILE>>$LOGDIR/monthly.log
  rm  $LOGDIR/$ROTATEDLOGFILE
  exclude_from_log
}

weekly ()
{
  WEEKLYOUT=$HTMLOUT/weekly
  mkdir -p $WEEKLYOUT
  create_index_html
# $SARG -l $LOGDIR/weekly.log -f $CONFIG -d $WEEKAGO-$YESTERDAY -o $WEEKLYOUT >$ERRORS 2>&1
  $SARG -l $LOGDIR/weekly.log -f $CONFIG -o $WEEKLYOUT >$ERRORS 2>&1    
  rm $LOGDIR/weekly.log
  exclude_from_log
}

monthly ()
{
  MONTHLYOUT=$HTMLOUT/monthly
  mkdir -p $MONTHLYOUT
  create_index_html
# $SARG -l $LOGDIR/monthly.log -f $CONFIG -d $MONTHAGO -o $MONTHLYOUT >$ERRORS 2>&1
  $SARG -l $LOGDIR/monthly.log -f $CONFIG -o $MONTHLYOUT >$ERRORS 2>&1
  #    Rotate monthly log
  [ -e $LOGDIR/monthly.10.gz ] && rm $LOGDIR/monthly.10.gz
  for num in 9 8 7 6 5 4 3 2 1 0;
  do
     nextnum=$(($num+1))
     [ -e $LOGDIR/monthly.$num.gz ] && mv $LOGDIR/monthly.$num.gz $LOGDIR/monthly.$nextnum.gz
  done
  mv    $LOGDIR/monthly.log $LOGDIR/monthly.0
  gzip  $LOGDIR/monthly.0
  exclude_from_log
}

case $1 in
    manual)
        manual
        ;;
    today)
        today
        ;;
    daily)
        daily
        ;;
    weekly)
        weekly
        ;;
    monthly)
        monthly
        ;;
     *)
        echo "SARG - Daily / Weekly / Monthly - Squid proxy usage reports creation tool"
        echo "Written by Ugo Viti <ugo.viti@initzero.it>"
        echo "Version: $VER"
        echo
        echo "Usage: $0 [OPTIONS]"
        echo
        echo "Allowed options:"
        echo "    manual,  Create Manual report"
        echo "     today,  Create Today report"
        echo "     daily,  Create Daily report"
        echo "    weekly,  Create Weekly report"
        echo "    montly,  Create Monthly report"
        exit 0
esac


## HISTORY:
# 20050502 - Stas Degteff added support for non latin Charset and added support for OpenBSD
# 20030826 - FreeBSD support (thanks to martijn to let me coding on your FreeBSD server :-))
# 20030715 - Some cleanups
# 20030623 - Manual report creation
# 20030620 - Main Index creation
# 20030619 - Solved 'sort' bug on Red Hat 9 systems
# 20030618 - First Version


## TODO:
# - Smarty weekly recognition...
#   Like "begin of last week to end of last week",
#   doesn't like this script do: "7 days ago to yesterday"
# - Monthly recognition isn't so elegant (is very ugly, i know)
# - Suggestions are welcome :-)
# - If you Rotate the squid logs before sarg-reports will run,
#   it will not create any html reports
#   (TIPS: Rotate the logs after sarg-reports)


Использование:

0       0       *       *       *       root    /usr/local/etc/sarg-scripts/sarg-reports daily
15      0       *       *       1       root    /usr/local/etc/sarg-scripts/sarg-reports weekly
20      1       1       *       *       root    /usr/local/etc/sarg-scripts/sarg-reports monthly


Если тебе хочется создавать отчеты за каждый день, то тебе поможет мой скрипт.


Формулировка "как правильно создать отчет за каждый день" соответствует полученному результату "очеты после срабатывания создаються за весь период работы Squid-a". Если тебе хочется создать отчеты за каждый день - то используя твой скрипт у тебя это неплохо получается.

Борец за грамотность )

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

3. "SARG отчет за по каждому дню"  +/
Сообщение от aon78 (??), 06-Мрт-06, 10:57 
>>Помогите разобраться
>>как правильно создать отчет за каждый день
>>#! /bin/sh
>>DAY=$(date+%d/%m/%Y)
>
>>/usr/bin/sarg -d $DAY
>
>>очеты после срабатывания создаються за весь период работы Squida
>
>Я у себя на сервере кручу по крону (в конце приведено) скрипт,
>приведенный ниже. Это исправленный скрипт, который был найден на сайте сквида
>или сарга, уже точно и не помню. Исправления касаются генерации недельных
>отчетов. Ротация логов происходит в этом же скрипте.
>
>
>#!/usr/local/bin/bash
># 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/
>
>VER=20050202
>
>## What is this?
># sarg-reports (this file) is a simple bash script written to automate
>
># the SARG (a powerful squid log analyzer) reports and log management.
>
># Sarg it self, provide to end user a generic interface to
>create
># reports based on squid access log (begin of log to current
>date).
># sarg-reports (this script) is useful because it allow you to easly
>
># create and manage Daily, Weekly and Monthly reports.
># Try it, within 5 minutes you will be ready to rule
>:-)
># using sarg-reports is very easy, read the following 3 steps to
>know how
>
>## Requirements
># a) An unix system with bash shell (like GNU/Linux, FreeBSD, etc...)
>
># b) Squid - http://www.squid-cache.org
># c) Sarg - http://web.onda.com.br/orso/sarg.html
>
>
>##
>## Installation guide and configuration parameters
>##
>
># 1) Download Squid and Sarg, Install, Configure and Tune
>#    they before continue reading
>
># 2) In root crontab (crontab -e) insert the following lines:
>#    (the today report creation time depend mostly of
>your squid server
>#    load average, tune it):
>#
>#    --- BEGIN ROOT CRONTAB ---
>#    PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin
>#    00 08-18/1 * * * sarg-reports today
>#    00 00      *
>* * sarg-reports daily
>#    00 01      *
>* 1 sarg-reports weekly
>#    30 02      1
>* * sarg-reports monthly
>#    --- END ROOT CRONTAB ---
>#
>#    REMEMBER: if you use logrotate, configure it to
>rotate the logs within MONTHLY basis,
>#            
>  AFTER sarg-reports created the monthly html report.
>
># 3) Customize the following variables:
>#    (Please, configure accurately the sarg.conf file before)
>#
>#        (SARG) The sarg executable
>location
># (SQUID) The squid executable location
>#      (CONFIG) The sarg main configuration file
>location
>#      (LOGDIR) Location where logfiles lies
>#(ROTATEDLOGFILE) Name of file where will be current log after log rotation
>
>#     (HTMLOUT) Location where will be saved the
>reports
>#   (PAGETITLE) The title of main index page
>#     (LOGOIMG) Image logo to view in main
>index page
>#    (LOGOLINK) HTTP web page link of logo
>#       (DAILY) Word 'daily' translation, translate
>it to your language
>#      (WEEKLY) Word 'weekly' translation, translate it
>to your language
>#     (MONTHLY) Word 'monthly' translation, translate it to
>your language
># (EXCLUDELOG1) Exclude text from cron emails
>#       +    
>  (normally, sarg, during cron activity, if it don't find
>any valid records,
># (EXCLUDELOG2) it will output an error message (usually on 'today' reports).
>
>#            
>   I don't want to be warned by email
>about this, so, i wrote the 'text'
>#            
>   that will be never logged.
>#            
>   This is useful to receive email of real
>problems only (enjoy that)
>
>#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
>## Italian Language
>#       SARG=/usr/bin/sarg
>#     CONFIG=/etc/sarg/sarg.conf
>#    HTMLOUT=/var/www/html/admin/log/proxy
>#  PAGETITLE="Statistiche Proxy di $(hostname)"
>#    LOGOIMG=http://www.initzero.it/images/initzero-logo.jpg
>#   LOGOLINK=http://www.initzero.it
>#      DAILY=Giornaliero
>#     WEEKLY=Settimanale
>#    MONTHLY=Mensile
>#EXCLUDELOG1="SARG: Nessun records trovato."
>#EXCLUDELOG2="SARG: Fine"
>#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
>
>
>#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
>## Russian Language
>    SARG="/usr/local/bin/sarg"
>    SQUID="/usr/local/sbin/squid"
>    CONFIG=/usr/local/etc/sarg/sarg.conf
>    LOGDIR=/var/log/squid
>    ROTATEDLOGFILE=access.log.0
>    HTMLOUT=/usr/local/www/internal/sarg-reports
>    PAGETITLE="пФЮЕФ РП ЙУРПМШЪПЧБОЙА ФТБЖЖЙЛБ Squid"   #
>russian koi8-r
>    LOGOIMG=http://litek.ru/images/logotop.gif
>    LOGOLINK=http://litek.ru
>    DAILY="еЦЕДОЕЧОЩК ПФЮЕФ"     # russian
>koi8-r
>    WEEKLY="пФЮЕФ ЪБ ОЕДЕМА"     #
>russian koi8-r
>    MONTHLY="пФЮЕФ ЪБ НЕУСГ"     #
>russian koi8-r
>EXCLUDELOG1="SARG: Records in file:"
>#EXCLUDELOG2="SARG: ïÔÞÅÔ ÕÓÐÅÛÎÏ ÓÇÅÎÅÒÉÒÏ×ÁÎ ×" # sarg.conf: language Russian_koi8
>EXCLUDELOG2=""
>#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
>
>
>######################################################################
>## The configuration is end, so don't touch anything bellow
>
># TEMP Files
>TMPFILE=/tmp/sarg-reports.$RANDOM
> ERRORS="${TMPFILE}.errors"
>
># Date Calc
>MANUALDATE=$2
>case "$(uname)" in
>"FreeBSD")
>         TODAY=$(date +%d/%m/%Y)
>     YESTERDAY=$(date -v-1d +%d/%m/%Y)
>       WEEKAGO=$(date -v-1w +%d/%m/%Y)
>      MONTHAGO=$(date -v-1m +01/%m/%Y)-$(date -v-1m +31/%m/%Y)
>   ;;
>#"OpenBSD")
>#         TODAY=$(date +%d/%m/%Y)
>#     YESTERDAY=$(date -r $((`date +%s` - 86400 ))
>+%d/%m/%Y)
>#       WEEKAGO=$(date -r $((`date +%s` -
>604800)) +%d/%m/%Y)
>#      MONTHAGO=$(perl -e '@t=localtime(time); $y=$t[4]==0?$t[5]+1899:$t[5]+1900; $m=$t[4]==0?12:$t[4]; print "1/$m/$y-",$m==2?$y%4>0?28:29:$m==4||$m==6||$m==9||$m==11?30:31 ,"/$m/$y\n";')
>#   ;;
>*)
>         TODAY=$(date --date "today"
>+%d/%m/%Y)
>     YESTERDAY=$(date --date "1 day ago" +%d/%m/%Y)
>       WEEKAGO=$(date --date "1 week ago"
>+%d/%m/%Y)
>      MONTHAGO=$(date --date "1 month ago" +01/%m/%Y)-$(date
>--date "1 month ago" +31/%m/%Y)
>   ;;
>esac
>
># Fix for Red Hat 9 systems and coreutils prior to 5.0
>version
>export LC_ALL=C
>
># Main index.html creation
>create_index_html ()
>{
>  echo -e "\
>  <html>\n\
>  <head>\n\
>  <title>$PAGETITLE</title>\n\
>  <META http-equiv=Content-Type content=\"text/html; charset=koi8-r\">\n\
>  </head>\n\
>  <body>\n\
>  <div align=center>\n\
>    <table border=0 cellspacing=6 cellpadding=7>\n\
>      <tr>\n\
>        <th align=center nowrap><b><font face=Arial size=4 color=green>$PAGETITLE</font></b></th>\n\
>      </tr>\n\
>      <tr>\n\
>        <td align=center bgcolor=beige><font face=Arial size=3><a href=daily/>$DAILY</a></font></td>\n\
>      </tr>\n\
>      <tr>\n\
>        <td align=center bgcolor=beige><font face=Arial size=3><a href=weekly/>$WEEKLY</a></font></td>\n\
>      </tr>\n\
>      <tr>\n\
>        <td align=center bgcolor=beige><font face=Arial size=3><a href=monthly/>$MONTHLY</a></font></td>\n\
>      </tr>\n\
>    </table>\n\
>  </div>\n\
>  </body>\n\
>  </html>" > $HTMLOUT/index.html
>}
>
>reports_autorm () {
>  BAKLIST="${TMPFILE}.BAKLIST"
>  BAKLISTTOLEAVELIST="${BAKLIST}.TOLEAVE.LIST"
>  BAKLISTTOLEAVEFIND="${BAKLIST}.TOLEAVE.FIND"
>  touch $BAKLIST $BAKLISTTOLEAVELIST $BAKLISTTOLEAVEFIND
>
>  cd $DESTINATION
>
>  find -name "*$BAKNAME*" -maxdepth 1 | sed -e 's/.\///' | grep -wv "." | sort 1> $BAKLIST
>
>  let TOLEAVEDAYS="$DAYBAK+1"
>
>  if [ $TOLEAVEDAYS -ge "0" ]
>    then
>      cat $BAKLIST | tail -n $TOLEAVEDAYS > $BAKLISTTOLEAVELIST
>      for BAK in $(cat $BAKLISTTOLEAVELIST)
>        do
>          echo "! -name $BAK" >> $BAKLISTTOLEAVEFIND
>        done
>  fi
>
>  CURRENTH=$(date +%H)
>  CURRENTM=$(date +%M)
>  if [ ${CURRENTH:0:1} == 0 ]
>  then
>    CURRENTH=${CURRENTH:1:1}
>  fi
>  if [ ${CURRENTM:0:1} == 0 ]
>    then
>      CURRENTM=${CURRENTM:1:1}
>  fi
>  let MINUTES="((($DAYBAK*24)+$CURRENTH)*60)+$CURRENTM+1"
>
>  # Purging old backups, only if backup return "OK" status
>
>  find $DESTINATION -name "*$BAKNAME*" $(cat $BAKLISTTOLEAVEFIND) -maxdepth 1 -mmin +$MINUTES
>-exec rm -rf {} \;
>  #find $DESTINATION $(cat $BAKLISTTOLEAVEFIND) -maxdepth 1 -mmin +$MINUTES -exec rm
>-rf {} \;
>}
>
># Functions
>exclude_from_log ()
>{
>  cat $ERRORS | grep -v "$EXCLUDELOG1" | grep -v "$EXCLUDELOG2"
>
>  rm -f $TMPFILE*
>}
>
>manual ()
>{
>  DAILYOUT=$HTMLOUT/$DAILY
>  mkdir -p $DAILYOUT
>  create_index_html
>  if [ -z "$MANUALDATE" ]
>    then
>      echo "No date given, please specify
>a valid date (DD/MM/YYYY)"
>    else
>      $SARG -f $CONFIG -d $MANUALDATE -o
>$DAILYOUT
>  fi
>}
>
>today ()
>{
>  DAILYOUT=$HTMLOUT/daily
>  mkdir -p $DAILYOUT
>  create_index_html
>  $SARG -f $CONFIG -d $TODAY -o $DAILYOUT >$ERRORS 2>&1
>  exclude_from_log
>}
>
>daily ()
>{
>  DAILYOUT=$HTMLOUT/daily
>  mkdir -p $DAILYOUT
>  create_index_html
>  #Squid must be running !!
>  $SQUID -k rotate
>#  [ ! -e $LOGDIR/$ROTATEDLOGFILE ] &&
>  touch $LOGDIR/$ROTATEDLOGFILE
>  sleep 120
># $SARG -l $LOGDIR/$ROTATEDLOGFILE -f $CONFIG -d $YESTERDAY -o $DAILYOUT >$ERRORS 2>&1
>  $SARG -l $LOGDIR/$ROTATEDLOGFILE -f $CONFIG -o $DAILYOUT >$ERRORS 2>&1    
>  cat $LOGDIR/$ROTATEDLOGFILE>>$LOGDIR/weekly.log
>  cat $LOGDIR/$ROTATEDLOGFILE>>$LOGDIR/monthly.log
>  rm  $LOGDIR/$ROTATEDLOGFILE
>  exclude_from_log
>}
>
>weekly ()
>{
>  WEEKLYOUT=$HTMLOUT/weekly
>  mkdir -p $WEEKLYOUT
>  create_index_html
># $SARG -l $LOGDIR/weekly.log -f $CONFIG -d $WEEKAGO-$YESTERDAY -o $WEEKLYOUT >$ERRORS 2>&1
>  $SARG -l $LOGDIR/weekly.log -f $CONFIG -o $WEEKLYOUT >$ERRORS 2>&1    
>  rm $LOGDIR/weekly.log
>  exclude_from_log
>}
>
>monthly ()
>{
>  MONTHLYOUT=$HTMLOUT/monthly
>  mkdir -p $MONTHLYOUT
>  create_index_html
># $SARG -l $LOGDIR/monthly.log -f $CONFIG -d $MONTHAGO -o $MONTHLYOUT >$ERRORS 2>&1
>  $SARG -l $LOGDIR/monthly.log -f $CONFIG -o $MONTHLYOUT >$ERRORS 2>&1
>  #    Rotate monthly log
>  [ -e $LOGDIR/monthly.10.gz ] && rm $LOGDIR/monthly.10.gz
>  for num in 9 8 7 6 5 4 3
>2 1 0;
>  do
>     nextnum=$(($num+1))
>     [ -e $LOGDIR/monthly.$num.gz ] && mv $LOGDIR/monthly.$num.gz
>$LOGDIR/monthly.$nextnum.gz
>  done
>  mv    $LOGDIR/monthly.log $LOGDIR/monthly.0
>  gzip  $LOGDIR/monthly.0
>  exclude_from_log
>}
>
>case $1 in
>    manual)
>        manual
>        ;;
>    today)
>        today
>        ;;
>    daily)
>        daily
>        ;;
>    weekly)
>        weekly
>        ;;
>    monthly)
>        monthly
>        ;;
>     *)
>        echo "SARG - Daily
>/ Weekly / Monthly - Squid proxy usage reports creation tool"
>
>        echo "Written by Ugo Viti <ugo.viti@initzero.it>"
>        echo "Version: $VER"
>        echo
>        echo "Usage: $0 [OPTIONS]"
>
>        echo
>        echo "Allowed options:"
>        echo "  
> manual,  Create Manual report"
>        echo "  
>  today,  Create Today report"
>        echo "  
>  daily,  Create Daily report"
>        echo "  
> weekly,  Create Weekly report"
>        echo "  
> montly,  Create Monthly report"
>        exit 0
>esac
>
>
>## HISTORY:
># 20050502 - Stas Degteff added support for non latin Charset and
>added support for OpenBSD
># 20030826 - FreeBSD support (thanks to martijn to let me coding
>on your FreeBSD server :-))
># 20030715 - Some cleanups
># 20030623 - Manual report creation
># 20030620 - Main Index creation
># 20030619 - Solved 'sort' bug on Red Hat 9 systems
># 20030618 - First Version
>
>
>## TODO:
># - Smarty weekly recognition...
>#   Like "begin of last week to end of last
>week",
>#   doesn't like this script do: "7 days ago to
>yesterday"
># - Monthly recognition isn't so elegant (is very ugly, i know)
>
># - Suggestions are welcome :-)
># - If you Rotate the squid logs before sarg-reports will run,
>
>#   it will not create any html reports
>#   (TIPS: Rotate the logs after sarg-reports)
>
>
>
>
>
>
>Использование:
>
>0       0    
>  *       *  
>     *      
> root    /usr/local/etc/sarg-scripts/sarg-reports daily
>15      0      
> *       *  
>    1      
>root    /usr/local/etc/sarg-scripts/sarg-reports weekly
>20      1      
> 1       *  
>    *      
>root    /usr/local/etc/sarg-scripts/sarg-reports monthly
>
>
>Если тебе хочется создавать отчеты за каждый день, то тебе поможет мой
>скрипт.
>
>
>Формулировка "как правильно создать отчет за каждый день" соответствует полученному результату "очеты
>после срабатывания создаються за весь период работы Squid-a". Если тебе хочется
>создать отчеты за каждый день - то используя твой скрипт у
>тебя это неплохо получается.
>
>
>
>Борец за грамотность )

Спасибо! Все получилось)

Ответить | Правка | ^ к родителю #2 | Наверх | Cообщить модератору

4. "SARG отчет за по каждому дню"  +/
Сообщение от iscan (??), 05-Апр-06, 10:33 
#!/bin/sh
# 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/

VER=20050202

## What is this?
# sarg-reports (this file) is a simple bash script written to automate
# the SARG (a powerful squid log analyzer) reports and log management.
# Sarg it self, provide to end user a generic interface to create
# reports based on squid access log (begin of log to current date).
# sarg-reports (this script) is useful because it allow you to easly
# create and manage Daily, Weekly and Monthly reports.
# Try it, within 5 minutes you will be ready to rule :-)
# using sarg-reports is very easy, read the following 3 steps to know how

## Requirements
# a) An unix system with bash shell (like GNU/Linux, FreeBSD, etc...)
# b) Squid - http://www.squid-cache.org
# c) Sarg - http://web.onda.com.br/orso/sarg.html


##
## Installation guide and configuration parameters
##

# 1) Download Squid and Sarg, Install, Configure and Tune
#    they before continue reading

# 2) In root crontab (crontab -e) insert the following lines:
#    (the today report creation time depend mostly of your squid server
#    load average, tune it):
#
#    --- BEGIN ROOT CRONTAB ---
#    PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin
#    00 08-18/1 * * * sarg-reports today
#    00 00      * * * sarg-reports daily
#    00 01      * * 1 sarg-reports weekly
#    30 02      1 * * sarg-reports monthly
#    --- END ROOT CRONTAB ---
#
#    REMEMBER: if you use logrotate, configure it to rotate the logs within MONTHLY basis,
#              AFTER sarg-reports created the monthly html report.

# 3) Customize the following variables:
#    (Please, configure accurately the sarg.conf file before)
#
#        (SARG) The sarg executable location
#      (CONFIG) The sarg main configuration file location
#     (HTMLOUT) Location where will be saved the reports
#   (PAGETITLE) The title of main index page
#     (LOGOIMG) Image logo to view in main index page
#    (LOGOLINK) HTTP web page link of logo
#       (DAILY) Word 'daily' translation, translate it to your language
#      (WEEKLY) Word 'weekly' translation, translate it to your language
#     (MONTHLY) Word 'monthly' translation, translate it to your language
# (EXCLUDELOG1) Exclude text from cron emails
#       +       (normally, sarg, during cron activity, if it don't find any valid records,
# (EXCLUDELOG2) it will output an error message (usually on 'today' reports).
#               I don't want to be warned by email about this, so, i wrote the 'text'
#               that will be never logged.
#               This is useful to receive email of real problems only (enjoy that)

#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
## Italian Language
#SARG=/usr/bin/sarg
#CONFIG=/etc/sarg/sarg.conf
#HTMLOUT=/var/www/html/admin/log/proxy
#PAGETITLE="Statistiche Proxy di $(hostname)"
#LOGOIMG=http://www.initzero.it/images/initzero-logo.jpg
#LOGOLINK=http://www.initzero.it
#DAILY=Giornaliero
#WEEKLY=Settimanale
#MONTHLY=Mensile
#EXCLUDELOG1="SARG: Nessun records trovato."
#EXCLUDELOG2="SARG: Fine"
##@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
            
            
#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
## Russian Language
SARG="/usr/sbin/sarg"
CONFIG=/etc/sarg/sarg.conf
HTMLOUT=/var/www/html/squid
PAGETITLE="AFD Internet Statistic"  
LOGOIMG=http://www.afd.com.ua/sarg.png
DAILY="daily"    
WEEKLY="weekly"  
MONTHLY="monthly"
EXCLUDELOG1="SARG: Records in file:"
EXCLUDELOG2="SARG: reporting" # sarg.conf: language Russian_koi8
#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
            
        
######################################################################
## The configuration is end, so don't touch anything bellow
    
# TEMP Files
TMPFILE=/tmp/sarg-reports.$RANDOM
ERRORS="${TMPFILE}.errors"
            
# Date Calc

MANUALDATE=$2
case "$(uname)" in
"FreeBSD")
TODAY=$(date +%d/%m/%Y)
YESTERDAY=$(date -v-1d +%d/%m/%Y)
WEEKAGO=$(date -v-1w +%d/%m/%Y)
MONTHAGO=$(date -v-1m +01/%m/%Y)-$(date -v-1m +31/%m/%Y)
;;

"OpenBSD")
TODAY=$(date +%d/%m/%Y)
YESTERDAY=$(date -r $((`date +%s` - 86400 )) +%d/%m/%Y)
WEEKAGO=$(date -r $((`date +%s` - 604800)) +%d/%m/%Y)
MONTHAGO=$(perl -e '@t=localtime(time); $y=$t[4]==0?$t[5]+1899:$t[5]+1900; $m=$t[4]==0?12:$t[4]; print "1/$m/$y-",$m==2?$y%4>0?28:29:$m==4||$m==6||$m==9||$m==11?30:31 ,"/$m/$y\n";')
;;

*)
TODAY=$(date --date "today" +%d/%m/%Y)
YESTERDAY=$(date --date "1 day ago" +%d/%m/%Y)
WEEKAGO=$(date --date "1 week ago" +%d/%m/%Y)
MONTHAGO=$(date --date "1 month ago" +01/%m/%Y)-$(date --date "1 month ago" +31/%m/%Y)
;;
esac
                  
# Fix for Red Hat 9 systems and coreutils prior to 5.0 version
export LC_ALL=C
                  
# Main index.html creation
create_index_html ()
{
echo -e "\
<html>\n\
<head>\n\
<title>$PAGETITLE</title>\n\
</head>\n\
<body>\n\
<div align=center>\n\
<a href=$LOGOLINK><img border=0 src=$LOGOIMG></a>\n\
<table border=0 cellspacing=6 cellpadding=7>\n\
<tr>\n\
<th align=center nowrap><b><font face=Arial size=4 color=green>$PAGETITLE</font></b></th>\n\
</tr>\n\
<tr>\n\
<td align=center bgcolor=beige><font face=Arial size=3><a href=$DAILY>$DAILY</a></font></td>\n\
</tr>\n\
<tr>\n\
<td align=center bgcolor=beige><font face=Arial size=3><a href=$WEEKLY>$WEEKLY</a></font></td>\n\
</tr>\n\
<tr>\n\
<td align=center bgcolor=beige><font face=Arial size=3><a href=$MONTHLY>$MONTHLY</a></font></td>\n\
</tr>\n\
</table>\n\
</div>\n\
</body>\n\
</html>" > $HTMLOUT/index.html
}

reports_autorm () {
BAKLIST="${TMPFILE}.BAKLIST"
BAKLISTTOLEAVELIST="${BAKLIST}.TOLEAVE.LIST"
BAKLISTTOLEAVEFIND="${BAKLIST}.TOLEAVE.FIND"
touch $BAKLIST $BAKLISTTOLEAVELIST $BAKLISTTOLEAVEFIND
    
cd $DESTINATION

find -name "*$BAKNAME*" -maxdepth 1 | sed -e 's/.\///' | grep -wv "." | sort 1> $BAKLIST
  
let TOLEAVEDAYS="$DAYBAK+1"
    
if [ $TOLEAVEDAYS -ge "0" ]
then
cat $BAKLIST | tail -n $TOLEAVEDAYS > $BAKLISTTOLEAVELIST
for BAK in $(cat $BAKLISTTOLEAVELIST)
do
echo "! -name $BAK" >> $BAKLISTTOLEAVEFIND
done
fi
              
CURRENTH=$(date +%H)
CURRENTM=$(date +%M)
if [ ${CURRENTH:0:1} == 0 ]
then
CURRENTH=${CURRENTH:1:1}
fi
if [ ${CURRENTM:0:1} == 0 ]
then
CURRENTM=${CURRENTM:1:1}
fi
let MINUTES="((($DAYBAK*24)+$CURRENTH)*60)+$CURRENTM+1"
            
# Purging old backups, only if backup return "OK" status
find $DESTINATION -name "*$BAKNAME*" $(cat $BAKLISTTOLEAVEFIND) -maxdepth 1 -mmin +$MINUTES -exec rm -rf {} \;
          #find $DESTINATION $(cat $BAKLISTTOLEAVEFIND) -maxdepth 1 -mmin +$MINUTES -exec rm -rf {} \;
                  }
                          
                  # Functions
                  exclude_from_log ()
                  {
                  cat $ERRORS | grep -v "$EXCLUDELOG1" | grep -v "$EXCLUDELOG2"
                  rm -f $TMPFILE*
                  }
                      
                  manual ()
                  {
                  DAILYOUT=$HTMLOUT/$DAILY
                  mkdir -p $DAILYOUT
                  create_index_html
                  if [ -z "$MANUALDATE" ]
                  then
                  echo "No date given, please specify a valid date (DD/MM/YYYY)"
                  else
                  $SARG -f $CONFIG -d $MANUALDATE -o $DAILYOUT
                  fi
                  }
                          
                  today ()
                  {
                  DAILYOUT=$HTMLOUT/$DAILY
                  mkdir -p $DAILYOUT
                  create_index_html
                  $SARG -f $CONFIG -d $TODAY -o $DAILYOUT >$ERRORS 2>&1
                  exclude_from_log
                  }
                      
                  daily ()
                  {
                  DAILYOUT=$HTMLOUT/$DAILY
                  mkdir -p $DAILYOUT
                  create_index_html
                  $SARG -f $CONFIG -d $YESTERDAY -o $DAILYOUT >$ERRORS 2>&1
                  exclude_from_log
                  }
                        
                  weekly ()
                  {
                  WEEKLYOUT=$HTMLOUT/$WEEKLY
                  mkdir -p $WEEKLYOUT
                  create_index_html
                  $SARG -f $CONFIG -d $WEEKAGO-$YESTERDAY -o $WEEKLYOUT >$ERRORS 2>&1
                  exclude_from_log
                  }
                              
                  monthly ()
                  {
                  MONTHLYOUT=$HTMLOUT/$MONTHLY
                  mkdir -p $MONTHLYOUT
                  create_index_html
                  $SARG -f $CONFIG -d $MONTHAGO -o $MONTHLYOUT >$ERRORS 2>&1
                  exclude_from_log
                            }
                            
                            case $1 in
                            manual)
                            manual
                            ;;
                            today)
                            today
                            ;;
                            daily)
                            daily
                            ;;
                            weekly)
                            weekly
                            ;;
                            monthly)
                            monthly
                            ;;
                            *)
                            echo "SARG - Daily / Weekly / Monthly - Squid proxy usage reports creation tool"
                            echo "Written by Ugo Viti <ugo.viti@initzero.it>"
                            echo "Version: $VER"
                            echo
                            echo "Usage: $0 [OPTIONS]"
                            echo
                            echo "Allowed options:"
                            echo "    manual,  Create Manual report"
                            echo "     today,  Create Today report"
                            echo "     daily,  Create Daily report"
                            echo "    weekly,  Create Weekly report"
                            echo "    montly,  Create Monthly report"
                            exit 0
                            esac
                            
                            ## HISTORY:
                            # 20050502 - Stas Degteff added support for non latin Charset and added support for OpenBSD
                            # 20030826 - FreeBSD support (thanks to martijn to let me coding on your FreeBSD server :-))
                            # 20030715 - Some cleanups
                            # 20030623 - Manual report creation
                            # 20030620 - Main Index creation
                            # 20030619 - Solved 'sort' bug on Red Hat 9 systems
                            # 20030618 - First Version
                            
                            
                            ## TODO:
                            # - Smarty weekly recognition...
                            #   Like "begin of last week to end of last week",
                            #   doesn't like this script do: "7 days ago to yesterday"
                            # - Monthly recognition isn't so elegant (is very ugly, i know)
                            # - Suggestions are welcome :-)
                            # - If you Rotate the squid logs before sarg-reports will run,
                            #   it will not create any html reports
                            #   (TIPS: Rotate the logs after sarg-reports)
                                                                        


Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

5. "SARG отчет за по каждому дню"  +/
Сообщение от Olecemail (?), 07-Апр-06, 18:10 
Помогите запустить этот скрипт.
Я взял этот скрипт, прописал свои настройки (SARG="/usr/sbin/sarg"
CONFIG=/etc/sarg/sarg.conf, HTMLOUT=/var/www/html/squid и т. д.), задал соответствующие строки в crontab но скрипт не идет.
Тогда запустил вручную под sh и мне выдало:
command not founde 6:
: command not founde 7:
: command not founde 8:
: command not founde 18:
: command not founde 23:
: command not founde 24:
: command not founde 28:
: command not founde 31:
: command not founde 46:
: command not founde 65:
: command not founde 80:
: command not founde 81:
: command not founde 84:
: command not founde 85:
: command not founde 86:
: command not founde 87:
: command not founde 88:
: command not founde 89:
: command not founde 90:
: command not founde 91:
: command not founde 92:
: command not founde 95:
: command not founde 96:
: command not founde 99:
: command not founde 101:
: command not founde 102:
: command not founde 103:
: command not founde 105:
: command not founde 106:
./sarg-reports: line 107: syntax error near unexpected token `newline'
'/sarg-reports: line 107: `case "$(uname)" in
Почемуто не интерпретируется. Возможно у менея не установлен Сi.
Подскажите, плиз.
Ответить | Правка | ^ к родителю #4 | Наверх | Cообщить модератору

6. "SARG отчет за по каждому дню"  +/
Сообщение от Olecemail (?), 07-Апр-06, 18:12 
Помогите запустить этот скрипт.
Я взял этот скрипт, прописал свои настройки (SARG="/usr/sbin/sarg"
CONFIG=/etc/sarg/sarg.conf, HTMLOUT=/var/www/html/squid и т. д.), задал соответствующие строки в crontab но скрипт не идет.
Тогда запустил вручную под sh и мне выдало:
command not founde 6:
...... и т.д.
.........
: command not founde 106:
./sarg-reports: line 107: syntax error near unexpected token `newline'
'/sarg-reports: line 107: `case "$(uname)" in
Почемуто не интерпретируется. Возможно у менея не установлен Сi.
Подскажите, плиз.
Ответить | Правка | ^ к родителю #4 | Наверх | Cообщить модератору

7. "SARG отчет за по каждому дню"  +/
Сообщение от Olecemail (?), 07-Апр-06, 18:13 
Помогите запустить этот скрипт.
Я взял этот скрипт, прописал свои настройки (SARG="/usr/sbin/sarg"
CONFIG=/etc/sarg/sarg.conf, HTMLOUT=/var/www/html/squid и т. д.), задал соответствующие строки в crontab но скрипт не идет.
Тогда запустил вручную под sh и мне выдало:
command not founde 6:
: command not founde 7:
: command not founde 8:
: command not founde 18:
: command not founde 23:
: command not founde 24:
: command not founde 28:
: command not founde 31:
: command not founde 46:
: command not founde 65:
: command not founde 80:
: command not founde 81:
: command not founde 84:
: command not founde 85:
: command not founde 86:
: command not founde 87:
: command not founde 88:
: command not founde 89:
: command not founde 90:
: command not founde 91:
: command not founde 92:
: command not founde 95:
: command not founde 96:
: command not founde 99:
: command not founde 101:
: command not founde 102:
: command not founde 103:
: command not founde 105:
: command not founde 106:
./sarg-reports: line 107: syntax error near unexpected token `newline'
'/sarg-reports: line 107: `case "$(uname)" in
Почемуто не интерпретируется. Возможно у менея не установлен Сi.
Подскажите, плиз.
Ответить | Правка | ^ к родителю #4 | Наверх | Cообщить модератору

8. "SARG отчет за по каждому дню"  +/
Сообщение от PavelRemail (??), 08-Апр-06, 07:25 
>Помогите запустить этот скрипт.
>Я взял этот скрипт, прописал свои настройки (SARG="/usr/sbin/sarg"
>CONFIG=/etc/sarg/sarg.conf, HTMLOUT=/var/www/html/squid и т. д.), задал соответствующие строки в crontab но скрипт
>не идет.
>Тогда запустил вручную под sh и мне выдало:
> command not founde 6:
>: command not founde 7:

Хз конечно, но у меня моя модификация (с "точным" отчетом по неделям) работает с использованием интерпретатора bash.

Первая строка скрипта выглядит как
#!/usr/local/bin/bash

Я так понимаю у вас BSD, в котором есть свой собственный командный интерпретатор sh ?
Скрипт рассчитан на Bash, а то что указано в скрипте в виде /bin/sh - это практически общепринятый симлинк на Bash в линукс системах.  

Ответить | Правка | ^ к родителю #7 | Наверх | Cообщить модератору

9. "SARG отчет за по каждому дню"  +/
Сообщение от Olecemail (?), 10-Апр-06, 10:59 
У меня Linux RedHat 9. И япытался запустить скрипт под sh. А вообще под Linux RedHat Linux RedHat этот скрипт запустить можно?
Ответить | Правка | ^ к родителю #8 | Наверх | Cообщить модератору

10. "SARG отчет за по каждому дню"  +/
Сообщение от skycheg (ok), 23-Янв-19, 07:07 
Коллеги, приветствую.
А мне поможете разрулить ситуасьон?

имею stable FreeBSD_12
установлен squid + sarg

все логируется, отчеты делаются.

Решил все дело автоматизировать и отдать в cron.
согласно моему конфигу sarg пишет в /usr/local/www/squid-reports (где они удачно отображаются по строке http://ip-adress/sarg) Но команда sarg парсит весь лог squid.

Я в /usr/local/www/squid-reports создал каталоги Daily Monthly Weekly
создал простой скрипт со строкой sarg -d day-1 -o /usr/local/www/squid-reports/Daily

права на чтение у апача одинаковые как на родительский каталог так и на созданные.
Скрипт запускаю от root.
Проблема в том, что при выполнении скрипта ежедневный отчет не кладется в указанный в скрипте каталог, а создает свой Daily. (именно с точкой. Если глянуть на менеджере mc то вместо точки виден знак вопроса - ?, типа Daily?)
Соответственно при переходе по ссылке со стартовой страницы там меня ждет ошибка. типа The requested URL /sarg/$Daily was not found on this server.

если переместить/скопировать созданные логи из каталога Daily. в Daily - то все отображается.

Как заставить сардж писать в нужный мне каталог?

на всякий случай стартовый index.html (стащил его с какого то форума)

<html>
<head>
<title>Access Reports $hostname</title>
</head>
<body>
<div align=center>
<table border=0 cellspacing=6 cellpadding=7>
<tr>
<th align=center nowrap><b><font face=Arial size=4 color=green>Access Reports $hostname</font></b></th>
</tr>
<tr>
<td align=center bgcolor=beige><font face=Arial size=3><a href=$Daily>Daily</a></font></td>
</tr>
<tr>
<td align=center bgcolor=beige><font face=Arial size=3><a href=$Weekly>Weekly</a></font></td>
</tr>
<tr>
<td align=center bgcolor=beige><font face=Arial size=3><a href=$Monthly>Monthly</a></font></td>
</tr>
</table>
</div>
</body>
</html>

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




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

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