Subversion Repositories wimsdev

Rev

Rev 15866 | 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'`
16439 guerimand 12
mkdir -p $WIMS_HOME/log/stat;
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
15866 bpr 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
35
        location=`awk -F'=' '$1=="!set class_location" {print $2; exit}' $cls/.def`;
36
        geoloc=`awk -F'=' '$1=="!set class_geoloc" {print $2; exit}' $cls/.def`;
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;
15866 bpr 44
    fi;
45
  fi;
15785 guerimand 46
done;
15866 bpr 47
c=`awk -F ',' 'BEGIN {  t["K3"]=0
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]++}
15785 guerimand 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;
15866 bpr 71
c=`awk -F ',' 'BEGIN {t["K3"]=0
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}
15785 guerimand 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
15866 bpr 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=" "
15866 bpr 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;
15806 guerimand 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;