Subversion Repositories wimsdev

Rev

Rev 15806 | Rev 15866 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
15785 guerimand 1
#! /bin/sh
2
# this script get user by class and level each week and write in wimshome/log/stat/stat.class and wimshome/log/class/stat.user
3
# format is date K3 E1 E2 E3 E4 E5 E6 H1 H2 H3 H4 H5 H6 U1 U2 U3 U4 U5 G
4
 
5
 
6
# Home directory of wims.
7
cd `dirname $0`/..
8
WIMS_HOME=`pwd`
9
 
10
today=`date '+%Y%m%d'`
11
weekday=`date '+%w'`
15796 guerimand 12
if [ ! -d $WIMS_HOME/log/stat/ ]; then mkdir $WIMS_HOME/log/stat; fi;
15802 guerimand 13
#if [ $weekday -ne 1 -a -e $WIMS_HOME/log/stat/today ]; then exit; fi;
15785 guerimand 14
 
15796 guerimand 15
if [ -e $WIMS_HOME/log/stat/server.geoloc ]; then
16
  servertown=`cut -d, -f1 $WIMS_HOME/log/stat/server.geoloc`;
17
  servergeoloc=`cut -d, -f2-3 $WIMS_HOME/log/stat/server.geoloc`;
18
else
19
  servertown=""
20
  servergeoloc=""
21
fi;
15785 guerimand 22
 
23
rm -f $WIMS_HOME/log/stat/today;
24
 
25
cd $WIMS_HOME/log/classes
15796 guerimand 26
cpt=0
15785 guerimand 27
for cls in [0-9]*
28
do
29
   if [ $cls -gt 9999 ]; then
30
      level=`awk -F'=' '$1=="!set class_level" {print $2; exit}' $cls/.def`;
31
      if [ "$level" != "" ]; then
32
         nuser=`cat $cls/.userlist | grep -c '^:'`
33
         # class with less than 5 users not count
34
         if [ $nuser -ge 5 ]; then
15796 guerimand 35
            location=`awk -F'=' '$1=="!set class_location" {print $2; exit}' $cls/.def`;
15802 guerimand 36
            geoloc=`awk -F'=' '$1=="!set class_geoloc" {print $2; exit}' $cls/.def`;
15796 guerimand 37
            echo "$cls,$level,$nuser,$location,$geoloc" >> $WIMS_HOME/log/stat/today;
38
            if [ "$geoloc" != "" -a "$geoloc"!="$servergeoloc" ]; then
39
               echo "$location,$geoloc" >> $WIMS_HOME/log/stat/location.tmp;
40
            else
41
               cpt=`expr $cpt + 1`
42
            fi;
15785 guerimand 43
         fi;
44
      fi;
45
   fi;
46
done;
15806 guerimand 47
c=`awk -F ',' 'BEGIN {  t["K3"]=0
15785 guerimand 48
                        t["E1"]=0
49
                        t["E2"]=0
50
                        t["E3"]=0
51
                        t["E4"]=0
52
                        t["E5"]=0
53
                        t["E6"]=0
54
                        t["H1"]=0
55
                        t["H2"]=0
56
                        t["H3"]=0
57
                        t["H4"]=0
58
                        t["H5"]=0
59
                        t["H6"]=0
60
                        t["U1"]=0
61
                        t["U2"]=0
62
                        t["U3"]=0
63
                        t["U4"]=0
64
                        t["U5"]=0
65
                        t["G"]=0} {if ($2 in t) t[$2]++}
66
  END {print t["K3"],t["E1"],t["E2"],t["E3"],t["E4"],t["E5"],t["E6"],t["H1"],t["H2"],t["H3"],t["H4"],t["H5"],t["H6"],t["U1"],t["U2"],t["U3"],t["U4"],t["U5"],t["G"]}' $WIMS_HOME/log/stat/today;`
15810 guerimand 67
old=`tail -n 1 $WIMS_HOME/log/stat/stat.class | cut -d" " -f2-20`;
68
if [ "$old" != "$c" ]; then
69
  echo ":$today $c" >> $WIMS_HOME/log/stat/stat.class;
70
fi;
15806 guerimand 71
c=`awk -F ',' 'BEGIN {  t["K3"]=0
15785 guerimand 72
                        t["E1"]=0
73
                        t["E2"]=0
74
                        t["E3"]=0
75
                        t["E4"]=0
76
                        t["E5"]=0
77
                        t["E6"]=0
78
                        t["H1"]=0
79
                        t["H2"]=0
80
                        t["H3"]=0
81
                        t["H4"]=0
82
                        t["H5"]=0
83
                        t["H6"]=0
84
                        t["U1"]=0
85
                        t["U2"]=0
86
                        t["U3"]=0
87
                        t["U4"]=0
88
                        t["U5"]=0
89
                        t["G"]=0} {if ($2 in t) t[$2]+=$3}
90
  END {print t["K3"],t["E1"],t["E2"],t["E3"],t["E4"],t["E5"],t["E6"],t["H1"],t["H2"],t["H3"],t["H4"],t["H5"],t["H6"],t["U1"],t["U2"],t["U3"],t["U4"],t["U5"],t["G"]}' $WIMS_HOME/log/stat/today;`
15810 guerimand 91
old=`tail -n 1 $WIMS_HOME/log/stat/stat.user | cut -d" " -f2-20`;
92
if [ "$old" != "$c" ]; then
93
  echo ":$today $c" >> $WIMS_HOME/log/stat/stat.user;
94
fi;
15785 guerimand 95
 
15796 guerimand 96
# --------------- make geolocalisation of classe index
97
cd $WIMS_HOME/log/stat;
15806 guerimand 98
rm -f class.geoloc
15796 guerimand 99
if [ -e location.tmp ]; then
15806 guerimand 100
  # group identical town and geoloc
101
  sort location.tmp | uniq -c -ii | sed "s/^\ *//g" | awk -F" " '{ORS=" "
102
     print $1","
103
     for(i=2;i<=NF;i++) print $i
104
     ORS="\n"
105
     print ""}' | awk -F"," '{print ":"$2","$1","$3","$4}' > class.geoloc;
106
  rm -f location.tmp;
15796 guerimand 107
fi;
15806 guerimand 108
# every class not geolocalized are localized in the server town localization (if define).
109
if [ "$servergeoloc" != "" -a $cpt -gt 0 ]; then
110
  echo ":$servertown,$cpt,$servergeoloc" >> class.geoloc;
111
fi;