~ubuntu-branches/ubuntu/wily/calamaris/wily

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
I want to give the 'audience' some examples for using Calamaris.

So if you build some Scripts, crontabs or else around Calamaris, please
mail and describe them to <Calamaris@Cord.de>.

I'll probably add them to this file. Thank You.



Pavel Malakhov <pm@kokc.kem.ru> first sends in a new Example.
-----------------------------------------------------------------------
calam_rep.sh
============
#!/bin/bash
# Script for calamaris 3 to generate reports for squid 
#
# "Usage: calam_rep.sh [today|yesterday|week|month]"
#
# Pavel Malakhov 28.03.05 
#       12.05.05 fixed yesterday date format, new vars

CALAM_DIR='/etc/calamaris';                    # where calamaris is
SQUID_LOG_DIR='/usr/local/squid/var/logs';     # where the squid logs are
 # where to store reports. Root dir, all the other will be created by this script
REP_PATH_PREFIX='/var/www/html/reports/squid';
CACHE_DIR='/etc/calamaris/cache';              # where to store cache files for every week
YESTD=`date -d yesterday +%d`;               # yesterday's day of month
YESTW=`date -d yesterday +%V`;               # yesterday's week of year
YESTM=`date -d yesterday +%m_%B`;            # yesterday's month number and name

# ------------ You don't need to edit anything below ---------------------------
# ------------------ [but welcome to analyze!] ---------------------------------

# Check for dir for report.Create, if does not exist.
function checkdir {
     if [ ! -e "$REPPATH" ];then
       echo -n `date +%c` "Dir \"$REPPATH\" is not created. Creating...   ";   
       mkdir -p $REPPATH;   
       echo "Done.";
     fi;
}

# Check for parameter
if [ "$1" = "" ]; then
  echo "Usage: calam_rep.sh [today|yesterday|week|month]"
  exit 1
fi

# check for cache dir
if [ ! -e "$CACHE_DIR" ];then                              
   echo -n `date +%c` "Cache dir \"$CACHE_DIR\" is not created. Creating...   ";
   mkdir -p $CACHE_DIR;   
   echo "Done.";
fi;


case "$1" in
  "today" )
     REPPATH=$REP_PATH_PREFIX'/today';
     checkdir;
     cd $CALAM_DIR;
     echo -n `date +%c` "Processing data for today...   ";
     cat $SQUID_LOG_DIR/access.log | ./calamaris.pl --config-file ./calamaris.conf --output-path $REPPATH;
     ;;
  "yesterday" )
     REPPATH=$REP_PATH_PREFIX'/days/'$YESTD;
     checkdir;
     cd $CALAM_DIR;
     echo -n `date +%c` "Processing data for yesterday...   ";
     cat $SQUID_LOG_DIR/access.log.0 | ./calamaris.pl --config-file ./calamaris.conf --output-path $REPPATH --cache-output-file $CACHE_DIR/day.$YESTD;
     ;;
  "week" )
     REPPATH=$REP_PATH_PREFIX'/weeks/'$YESTW;
     checkdir;
     cd $SQUID_LOG_DIR;
     echo -n `date +%c` "Processing data for week...   ";
     cat access.log.6 access.log.5 access.log.4 access.log.3 access.log.2 access.log.1 access.log.0  | $CALAM_DIR/calamaris.pl --config-file $CALAM_DIR/calamaris.conf --output-path $REPPATH  --cache-output-file $CACHE_DIR/week.$YESTW;
     ;;
  "month" )
     REPPATH=$REP_PATH_PREFIX'/months/'$YESTM;
     checkdir;
     cd $CACHE_DIR;
     CACHEFILES="";
     for ((i=1; i<=31; i++)); do
       FILE='day.'$i;
       if [ -e "$FILE" ]; then 
	 if ["$CACHEFILES" = ""]; then 
	   CACHEFILES=$FILE;
         else
	   CACHEFILES=$CACHEFILES':'$FILE;
         fi
       fi    
     done 
     echo 'files to process '$CACHEFILES;
     echo -n `date +%c` "Processing data for month...   ";
     $CALAM_DIR/calamaris.pl --config-file $CALAM_DIR/calamaris.conf --cache-input-file $CACHEFILES --no-input --output-path $REPPATH;
     echo "Done";
     # clean up cache directory at the start of a month
     # delete only cached days, leave cached weeks 
     DD=`date +%d`;
     if [ "$DD" = "01" ]; then 
       echo -n `date +%c` "Cleaning up cache dir...   ";
       rm -f $CACHE_DIR/day.*;
     fi
     ;;
esac
echo "Done";
echo `date +%c` "---Everything is done" 
exit 0
-----------------------------------------------------

Everyone who really uses <Squidmaster@Cord.de> while testing has to send me a
	postcard!
-----------------------------------------------------------------------



Version of the EXAMPLES.v3
--------------------------

$Id: EXAMPLES.v3,v 3.1 2006-03-19 17:59:03 cord Exp $