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; |