mirror of
https://github.com/imapsync/imapsync.git
synced 2024-11-17 00:02:29 +01:00
725 lines
22 KiB
Bash
725 lines
22 KiB
Bash
#!/bin/sh
|
|
|
|
# $Id: memo,v 1.73 2019/09/05 13:32:57 gilles Exp gilles $
|
|
|
|
if test -n "$1"; then
|
|
echoq() { echo "$@" ; } # not quiet mode
|
|
else
|
|
echoq() { : ; } # quiet mode: nop
|
|
fi
|
|
|
|
count_nice() {
|
|
|
|
#set -x
|
|
# count # prints 01 02 03 04 05 06 07 08 09 10
|
|
# count 2 # prints 2 3 4 5 6 7 8 9 10 11
|
|
# count 005 # prints 005 006 007 008 009 010 011 012 013 014
|
|
# count 5 23 # prints 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
|
|
# count 5 23 3 # prints 5 8 11 14 17 20 23
|
|
|
|
nb_from=${1:-"01"}
|
|
nb_from_ln=`expr length $nb_from`
|
|
|
|
nb_to=${2:-`expr $nb_from + 9`}
|
|
nb_incr=${3:-"1"}
|
|
nb_counter=$nb_from
|
|
while test $nb_counter -le $nb_to;do
|
|
nb_list="$nb_list $nb_counter"
|
|
nb_counter=`expr $nb_counter + $nb_incr`
|
|
nb_counter=`printf %0${nb_from_ln}d $nb_counter`
|
|
done
|
|
echo $nb_list
|
|
#set +x
|
|
}
|
|
|
|
|
|
software_version() {
|
|
|
|
VERSION=`cat VERSION`
|
|
|
|
}
|
|
|
|
statistics_lfo_frequency() {
|
|
cat <<EOFF
|
|
tail -f /usr/local/apache/logs/access_log|cat -n|grep prj/imapsync/VERSION|cat -n |grep VERSION # lfo frequency
|
|
EOFF
|
|
}
|
|
|
|
statistics_lfo_run() {
|
|
# 62.147.165.21 - - [31/Oct/2010:23:45:28 +0100] "GET /prj/imapsync/VERSION HTTP/1.0" 200 6 "-" "imapsync/1.368 (linux system, perl 5.8.8, Mail::IMAPClient 2.2.9 imapsync)"
|
|
#grep prj/imapsync/VERSION /usr/local/apache/logs/access_log | sort -n | cut -d ' ' -f 1,12,13|uniq -c | sort -n # list ip
|
|
|
|
echo lfo list ip
|
|
ssh glamiral@linux-france.org "grep -h prj/imapsync/VERSION /usr/local/apache/logs/access_log.bak|cut -d ' ' -f 1,12,13,18,19|sort -n|uniq -c|sort -n" # list ip
|
|
echo lfo Win32
|
|
ssh glamiral@linux-france.org "grep -h prj/imapsync/VERSION /usr/local/apache/logs/access_log.bak|cut -d ' ' -f 1,12,13,18,19|sort -n|uniq -c|sort -n |grep MSWin32" # Win32
|
|
echo lfo OS usage+basename
|
|
ssh glamiral@linux-france.org "grep -h prj/imapsync/VERSION /usr/local/apache/logs/access_log.bak|cut -d ' ' -f 13,18,19 |sort -n|uniq -c| sort -n" # OS usage+basename
|
|
echo lfo imapsync release
|
|
ssh glamiral@linux-france.org "grep -h prj/imapsync/VERSION /usr/local/apache/logs/access_log.bak|cut -d ' ' -f 12 |sort -n|uniq -c| sort -n" # imapsync release
|
|
echo -n "lfo count ip: "
|
|
ssh glamiral@linux-france.org "grep -h prj/imapsync/VERSION /usr/local/apache/logs/access_log.bak|cut -d ' ' -f 1,12,13,18,19|sort -n|uniq -c|sort -n|wc -l" # count ip
|
|
echo -n "lfo imapsync runs: "
|
|
ssh glamiral@linux-france.org "grep -h prj/imapsync/VERSION /usr/local/apache/logs/access_log.bak|wc -l" # imapsync runs
|
|
date
|
|
}
|
|
|
|
|
|
statistics_ks_frequency() {
|
|
|
|
cat <<EOFF
|
|
tail -F /var/log/apache2/access.log |cat -n|grep prj/imapsync/VERSION|cat -n |grep VERSION # ks frequency
|
|
EOFF
|
|
}
|
|
|
|
statistics_ks_run() {
|
|
|
|
echo ks list ip
|
|
ssh root@ks "cd /var/log/apache2/;grep -h prj/imapsync/VERSION access.log_????????|cut -d ' ' -f 1,12,13,18,19|sort -n|uniq -c|sort -n" # list ip
|
|
echo ks Win32
|
|
ssh root@ks "cd /var/log/apache2/;grep -h prj/imapsync/VERSION access.log_????????|cut -d ' ' -f 1,12,13,18,19|sort -n|uniq -c|sort -n |grep MSWin32" # Win32
|
|
echo OS usage+basename
|
|
ssh root@ks "cd /var/log/apache2/;grep -h prj/imapsync/VERSION access.log_????????|cut -d ' ' -f 13,18,19 |sort -n|uniq -c| sort -n" # OS usage+basename
|
|
echo ks imapsync release
|
|
ssh root@ks "cd /var/log/apache2/;grep -h prj/imapsync/VERSION access.log_????????|cut -d ' ' -f 12 |sort -n|uniq -c| sort -n" # imapsync release
|
|
echo -n "ks count ip: "
|
|
ssh root@ks "cd /var/log/apache2/;grep -h prj/imapsync/VERSION access.log_????????|cut -d ' ' -f 1,12,13,18,19|sort -n|uniq -c|sort -n|wc -l" # count ip
|
|
echo -n "ks imapsync runs: "
|
|
ssh root@ks "cd /var/log/apache2/;grep -h prj/imapsync/VERSION access.log_????????|wc -l" # imapsync runs
|
|
date
|
|
}
|
|
|
|
|
|
statistics_VERSION_lfo() {
|
|
|
|
TMPDIR=.
|
|
export TMPDIR
|
|
|
|
echo statistics_VERSION_getstats
|
|
statistics_VERSION_getstats() {
|
|
for f in /home/lf/backuplog/linux-france.org.??-??-201[123456789].bz2; do
|
|
b=`basename "$f" .bz2`
|
|
#echo "$b"
|
|
test -f ${b}.imapsync_VERSION && continue
|
|
echo NOT DONE ${b}.imapsync_VERSION
|
|
bzip2 -dc "$f" | grep -h /prj/imapsync/VERSION > ${b}.imapsync_VERSION
|
|
done
|
|
}
|
|
|
|
echo "statistics_VERSION_monthly_ip 02 2012 # long"
|
|
statistics_VERSION_monthly_ip() {
|
|
statistics_VERSION_getstats
|
|
month=${1:-`date '+%m'`}
|
|
year=${2:-`date '+%Y'`}
|
|
ls linux-france.org.??-${month}-${year}.imapsync_VERSION > /dev/null || return 1
|
|
cut -d ' ' -f 1,12,13,18,19 linux-france.org.??-${month}-${year}.imapsync_VERSION |sort -n |uniq -c|sort -n > stats_imapsync_${year}_${month}.ip
|
|
}
|
|
|
|
echo "verify_month_year 02 2015"
|
|
verify_month_year() {
|
|
month=${1:-`date '+%m'`}
|
|
year=${2:-`date '+%Y'`}
|
|
(
|
|
cd $HOME/imapsync_stats
|
|
fmy="stats_imapsync_${year}_${month}.ip"
|
|
test -f "$fmy" || { echo "No $fmy" ; touch "$fmy" ; }
|
|
test -f "$fmy" || { echo "No $fmy" ; return 1 ; }
|
|
fmy_YYYYmm=`date -r "$fmy" +%Y%m`
|
|
diff_month=`expr $fmy_YYYYmm - ${year}${month}` || :
|
|
echo -n $diff_month
|
|
test "$diff_month" -ge 1 && echo " is enough" && return 0
|
|
echo " is not enough"
|
|
statistics_VERSION_monthly_ip $month $year
|
|
)
|
|
}
|
|
|
|
echo "verify_year 2015"
|
|
verify_year() {
|
|
year=${1:-`date '+%Y'`}
|
|
now_yearmonth=`date '+%Y%m'`
|
|
for month in `count_nice 01 12`; do
|
|
test "$now_yearmonth" -ge "$year$month" && \
|
|
( verify_month_year $month $year ) && \
|
|
( statistics_VERSION_monthly_runs $month $year )
|
|
done
|
|
statistics_VERSION_yearly_ip $year
|
|
statistics_VERSION_synthesis $year
|
|
}
|
|
|
|
|
|
echo "statistics_VERSION_monthly_ip_wc 02 2012 # short"
|
|
statistics_VERSION_monthly_ip_wc() {
|
|
month=${1:-`date '+%m'`}
|
|
year=${2:-`date '+%Y'`}
|
|
test -f stats_imapsync_${year}_${month}.ip || statistics_VERSION_monthly_ip $month ${year}
|
|
wc -l stats_imapsync_${year}_${month}.ip
|
|
}
|
|
|
|
echo "statistics_VERSION_monthly_runs 02 2012 # short"
|
|
statistics_VERSION_monthly_runs() {
|
|
month=${1:-`date '+%m'`}
|
|
year=${2:-`date '+%Y'`}
|
|
test -f stats_imapsync_${year}_${month}.runs || wc -l linux-france.org.??-${month}-${year}.imapsync_VERSION > stats_imapsync_${year}_${month}.runs
|
|
cat stats_imapsync_${year}_${month}.runs
|
|
}
|
|
|
|
echo "statistics_VERSION_yearly_os 2012 # short"
|
|
statistics_VERSION_yearly_os() {
|
|
year=${1:-`date '+%Y'`}
|
|
(
|
|
cd /home/lf/glamiral/imapsync_stats
|
|
Linux=`grep -i linux stats_imapsync_${year}.ip | grep imapsync | wc -l`
|
|
Win32=`grep -i MSWin32 stats_imapsync_${year}.ip | grep imapsync | wc -l`
|
|
Darwin=`grep -i darwin stats_imapsync_${year}.ip | grep imapsync | wc -l`
|
|
FreeBSD=`grep -i freebsd stats_imapsync_${year}.ip | grep imapsync | wc -l`
|
|
Solaris=`grep -i solaris stats_imapsync_${year}.ip | grep imapsync | wc -l`
|
|
OpenBSD=`grep -i openbsd stats_imapsync_${year}.ip | grep imapsync | wc -l`
|
|
Other=`egrep -i -v 'linux|MSWin32|darwin|freebsd|solaris|openbsd' stats_imapsync_${year}.ip | grep imapsync |wc -l`
|
|
Nb_All=`cat stats_imapsync_${year}.ip | grep imapsync | wc -l`
|
|
for OS in Linux Win32 Darwin FreeBSD Solaris OpenBSD Other; do
|
|
#echo $OS `eval "echo \\$$OS"` / $Nb_All
|
|
Nb_OS=`eval "echo \\$$OS"`
|
|
PerCent=`echo "scale=2; 100*$Nb_OS/$Nb_All" | bc -l`
|
|
echo $OS $PerCent %
|
|
done
|
|
)
|
|
}
|
|
|
|
echo
|
|
echo "statistics_VERSION_monthly 02 2012 # long, good choice"
|
|
statistics_VERSION_monthly() {
|
|
month=${1:-`date '+%m'`}
|
|
year=${2:-`date '+%Y'`}
|
|
(
|
|
statistics_VERSION_getstats
|
|
statistics_VERSION_monthly_ip $month $year
|
|
statistics_VERSION_monthly_runs $month $year
|
|
statistics_VERSION_monthly_ip_wc $month $year
|
|
)
|
|
}
|
|
|
|
|
|
echo "statistics_VERSION_yearly_ip 2012 # very long"
|
|
statistics_VERSION_yearly_ip() {
|
|
year=${1:-`date '+%Y'`}
|
|
(
|
|
statistics_VERSION_getstats
|
|
cd /home/lf/glamiral/imapsync_stats
|
|
cut -d ' ' -f 1,12,13,18,19 linux-france.org.??-??-${year}.imapsync_VERSION |sort -n |uniq -c|sort -n > stats_imapsync_${year}.ip
|
|
)
|
|
}
|
|
|
|
statistics_VERSION_yearly_runs() {
|
|
year=${1:-`date '+%Y'`}
|
|
(
|
|
cd /home/lf/glamiral/imapsync_stats
|
|
test -f stats_imapsync_${year}.ip && cat stats_imapsync_${year}.ip | awk '{ sum+=$1 } END {print sum}'
|
|
)
|
|
}
|
|
|
|
echo "statistics_VERSION_synthesis 2012 # short"
|
|
statistics_VERSION_synthesis() {
|
|
year=${1:-`date '+%Y'`}
|
|
year_now=`date '+%Y'`
|
|
(
|
|
cd /home/lf/glamiral/imapsync_stats
|
|
echo Nb users each month
|
|
wc -l stats_imapsync_${year}_??.ip
|
|
echo Nb runs each month
|
|
tail -n 1 stats_imapsync_${year}_??.runs
|
|
echo % Operating systems
|
|
statistics_VERSION_yearly_os $year
|
|
echo Biggest users
|
|
tail -n 5 stats_imapsync_${year}.ip
|
|
echo Nb users each year
|
|
wc -l stats_imapsync_????.ip
|
|
echo "Nb runs each year : "
|
|
for yyyy in `count_nice 2011 ${year_now}`; do
|
|
echo -n "$yyyy: "
|
|
statistics_VERSION_yearly_runs $yyyy
|
|
done
|
|
nb_runs_current_year=`statistics_VERSION_yearly_runs $year_now`
|
|
current_day_of_year=`date +%j`
|
|
echo; echo -n "$year_now~~"
|
|
echo "$nb_runs_current_year/$current_day_of_year*365" | bc
|
|
)
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
statistics_VERSION_ks() {
|
|
|
|
TMPDIR=.
|
|
export TMPDIR
|
|
|
|
echoq statistics_VERSION_getstats
|
|
statistics_VERSION_getstats() {
|
|
(
|
|
cd $HOME/imapsync_stats
|
|
for f in /var/log/apache2/access.log_????????.gz ; do
|
|
b=`basename "$f" .gz`
|
|
#echo "$b"
|
|
test -f ${b}.imapsync_VERSION && continue
|
|
echo NOT DONE ${b}.imapsync_VERSION
|
|
# To remove NULL characters: tr -d '\000'
|
|
zgrep -h /prj/imapsync/VERSION "$f" | tr -d '\000' > ${b}.imapsync_VERSION
|
|
done
|
|
)
|
|
}
|
|
|
|
echoq "statistics_VERSION_monthly_ip 02 2012 # long"
|
|
statistics_VERSION_monthly_ip() {
|
|
statistics_VERSION_getstats
|
|
month=${1:-`date '+%m'`}
|
|
year=${2:-`date '+%Y'`}
|
|
(
|
|
cd $HOME/imapsync_stats
|
|
ls access.log_${year}${month}??.imapsync_VERSION > /dev/null || return 1
|
|
cut -d ' ' -f 1,12,13,15,16,18,19 access.log_${year}${month}??.imapsync_VERSION |sort -n |uniq -c|sort -n > stats_imapsync_${year}_${month}.ip
|
|
)
|
|
}
|
|
|
|
echoq "verify_month_year 02 2015"
|
|
verify_month_year() {
|
|
month=${1:-`date '+%m'`}
|
|
year=${2:-`date '+%Y'`}
|
|
(
|
|
cd $HOME/imapsync_stats
|
|
fmy="stats_imapsync_${year}_${month}.ip"
|
|
test -f "$fmy" || { echo "No $fmy" ; touch "$fmy" ; }
|
|
test -f "$fmy" || { echo "No $fmy" ; return 0 ; }
|
|
fmy_YYYYmm=`date -r "$fmy" +%Y%m`
|
|
diff_month=`expr $fmy_YYYYmm - ${year}${month}` || :
|
|
#echo -n $diff_month
|
|
test "$diff_month" -ge 1 && return 0
|
|
echo "$fmy_YYYYmm - ${year}${month} = $diff_month is not enough"
|
|
statistics_VERSION_monthly $month $year
|
|
)
|
|
}
|
|
|
|
echoq "verify_year 2015"
|
|
verify_year() {
|
|
year=${1:-`date '+%Y'`}
|
|
now_yearmonth=`date '+%Y%m'`
|
|
for month in `count_nice 01 12`; do
|
|
test "$now_yearmonth" -ge "$year$month" && \
|
|
verify_month_year $month $year
|
|
done
|
|
statistics_VERSION_yearly_ip $year
|
|
statistics_VERSION_synthesis $year
|
|
}
|
|
|
|
echoq "statistics_VERSION_monthly_os 08 2012 # short"
|
|
statistics_VERSION_monthly_os() {
|
|
month=${1:-`date '+%m'`}
|
|
year=${2:-`date '+%Y'`}
|
|
(
|
|
cd $HOME/imapsync_stats
|
|
Linux=`grep -i linux stats_imapsync_${year}_${month}.ip | wc -l`
|
|
Win32=`grep -i MSWin32 stats_imapsync_${year}_${month}.ip | wc -l`
|
|
Darwin=`grep -i darwin stats_imapsync_${year}_${month}.ip | wc -l`
|
|
FreeBSD=`grep -i freebsd stats_imapsync_${year}_${month}.ip | wc -l`
|
|
Solaris=`grep -i solaris stats_imapsync_${year}_${month}.ip | wc -l`
|
|
OpenBSD=`grep -i openbsd stats_imapsync_${year}_${month}.ip | wc -l`
|
|
Other=`egrep -i -v 'linux|MSWin32|darwin|freebsd|solaris|openbsd' stats_imapsync_${year}_${month}.ip |wc -l`
|
|
Nb_All=`cat stats_imapsync_${year}_${month}.ip | wc -l`
|
|
for OS in Linux Win32 Darwin FreeBSD Solaris OpenBSD Other; do
|
|
#echo $OS `eval "echo \\$$OS"` / $Nb_All
|
|
Nb_OS=`eval "echo \\$$OS"`
|
|
PerCent=`echo "scale=2; 100*$Nb_OS/$Nb_All" | bc -l`
|
|
echo $OS $PerCent%
|
|
done
|
|
)
|
|
}
|
|
|
|
echoq "statistics_VERSION_yearly_os 2012 # short"
|
|
statistics_VERSION_yearly_os() {
|
|
year=${1:-`date '+%Y'`}
|
|
(
|
|
cd $HOME/imapsync_stats
|
|
Linux=`grep -i linux stats_imapsync_${year}.ip | grep imapsync | wc -l`
|
|
Win32=`grep -i MSWin32 stats_imapsync_${year}.ip | grep imapsync | wc -l`
|
|
Darwin=`grep -i darwin stats_imapsync_${year}.ip | grep imapsync | wc -l`
|
|
FreeBSD=`grep -i freebsd stats_imapsync_${year}.ip | grep imapsync | wc -l`
|
|
Solaris=`grep -i solaris stats_imapsync_${year}.ip | grep imapsync | wc -l`
|
|
OpenBSD=`grep -i openbsd stats_imapsync_${year}.ip | grep imapsync | wc -l`
|
|
Cygwin=`grep -i cygwin stats_imapsync_${year}.ip | grep imapsync | wc -l`
|
|
Unknown=`grep -i '"-"' stats_imapsync_${year}.ip | grep imapsync | wc -l`
|
|
Other=`egrep -i -v 'linux|MSWin32|darwin|freebsd|solaris|openbsd|cygwin|"-"' stats_imapsync_${year}.ip | grep imapsync |wc -l`
|
|
Nb_All=`cat stats_imapsync_${year}.ip | grep imapsync | wc -l`
|
|
for OS in Linux Win32 Darwin FreeBSD Solaris OpenBSD Cygwin Unknown Other; do
|
|
#echo $OS `eval "echo \\$$OS"` / $Nb_All
|
|
Nb_OS=`eval "echo \\$$OS"`
|
|
PerCent=`echo "scale=2; 100*$Nb_OS/$Nb_All" | bc -l`
|
|
echo $OS $PerCent %
|
|
done
|
|
)
|
|
}
|
|
|
|
|
|
echoq "statistics_VERSION_monthly_ip_wc 02 2012 # short"
|
|
statistics_VERSION_monthly_ip_wc() {
|
|
month=${1:-`date '+%m'`}
|
|
year=${2:-`date '+%Y'`}
|
|
(
|
|
cd $HOME/imapsync_stats
|
|
test -f stats_imapsync_${year}_${month}.ip || statistics_VERSION_monthly_ip $month ${year}
|
|
wc -l stats_imapsync_${year}_${month}.ip
|
|
)
|
|
}
|
|
|
|
echoq "statistics_VERSION_monthly_runs 02 2012 # short"
|
|
statistics_VERSION_monthly_runs() {
|
|
month=${1:-`date '+%m'`}
|
|
year=${2:-`date '+%Y'`}
|
|
(
|
|
cd $HOME/imapsync_stats
|
|
wc -l access.log_${year}${month}??.imapsync_VERSION > stats_imapsync_${year}_${month}.runs
|
|
cat stats_imapsync_${year}_${month}.runs
|
|
)
|
|
}
|
|
|
|
echoq
|
|
echoq "statistics_VERSION_monthly 02 2012 # long, good choice"
|
|
statistics_VERSION_monthly() {
|
|
month=${1:-`date '+%m'`}
|
|
year=${2:-`date '+%Y'`}
|
|
(
|
|
statistics_VERSION_getstats
|
|
statistics_VERSION_monthly_ip $month $year
|
|
statistics_VERSION_monthly_runs $month $year
|
|
statistics_VERSION_monthly_ip_wc $month $year
|
|
)
|
|
}
|
|
|
|
|
|
echoq "statistics_VERSION_yearly_ip 2015 # very long"
|
|
statistics_VERSION_yearly_ip() {
|
|
year=${1:-`date '+%Y'`}
|
|
(
|
|
statistics_VERSION_getstats
|
|
cd $HOME/imapsync_stats
|
|
cut -d ' ' -f 1,12,13,15,16,18,19 access.log_${year}????.imapsync_VERSION |sort -n |uniq -c|sort -n > stats_imapsync_${year}.ip
|
|
)
|
|
}
|
|
|
|
echoq "statistics_VERSION_yearly_ip_resolved 2015 # very long"
|
|
statistics_VERSION_yearly_ip_resolved() {
|
|
year=${1:-`date '+%Y'`}
|
|
today=`date +%Y_%m_%d`
|
|
(
|
|
cd $HOME/imapsync_stats
|
|
mkdir -p daily
|
|
cat stats_imapsync_${year}.ip | awk '{ count=$1; ip=$2; $1=""; print $2 " " $0 " " count ; }' \
|
|
| webresolve > daily/stats_imapsync_${year}.ip.resolved.${today}.txt
|
|
)
|
|
}
|
|
|
|
|
|
maxmind_update() {
|
|
cat << 'EOF'
|
|
wget http://geolite.maxmind.com/download/geoip/database/GeoLiteCountry/GeoIP.dat.gz
|
|
wget http://geolite.maxmind.com/download/geoip/database/GeoLiteCity.dat.gz
|
|
wget http://download.maxmind.com/download/geoip/database/asnum/GeoIPASNum.dat.gz
|
|
gunzip GeoIP.dat.gz
|
|
gunzip GeoIPASNum.dat.gz
|
|
gunzip GeoLiteCity.dat.gz
|
|
sudo mv GeoIP.dat GeoIPASNum.dat GeoLiteCity.dat /usr/share/GeoIP/
|
|
EOF
|
|
}
|
|
|
|
maxmind_update2() {
|
|
cat << 'EOF'
|
|
wget https://geolite.maxmind.com/download/geoip/database/GeoLite2-City.tar.gz \
|
|
https://geolite.maxmind.com/download/geoip/database/GeoLite2-City-CSV.zip \
|
|
https://geolite.maxmind.com/download/geoip/database/GeoLite2-Country.tar.gz \
|
|
https://geolite.maxmind.com/download/geoip/database/GeoLite2-Country-CSV.zip \
|
|
https://geolite.maxmind.com/download/geoip/database/GeoLite2-ASN.tar.gz \
|
|
https://geolite.maxmind.com/download/geoip/database/GeoLite2-ASN-CSV.zip
|
|
|
|
|
|
EOF
|
|
}
|
|
|
|
|
|
echoq "statistics_VERSION_yearly_ip_geo 2015 # long"
|
|
statistics_VERSION_yearly_ip_geo() {
|
|
year=${1:-`date '+%Y'`}
|
|
today=`date +%Y_%m_%d`
|
|
(
|
|
cd $HOME/imapsync_stats
|
|
awk '{ print $2 }' stats_imapsync_${year}.ip | xargs -n1 geoiplookup > stats_imapsync_${year}.ipgeo.tmp.countries
|
|
awk '{ print $2 }' stats_imapsync_${year}.ip | xargs -n1 geoiplookup -f /usr/share/GeoIP/GeoLiteCity.dat > stats_imapsync_${year}.ipgeo.tmp.cities
|
|
cat stats_imapsync_${year}.ipgeo.tmp.countries stats_imapsync_${year}.ipgeo.tmp.cities | sort | uniq -c | sort -n > stats_imapsync_${year}.ipgeo
|
|
rm stats_imapsync_${year}.ipgeo.tmp.countries stats_imapsync_${year}.ipgeo.tmp.cities
|
|
echo stats_imapsync_${year}.ipgeo
|
|
)
|
|
}
|
|
|
|
echoq "statistics_VERSION_all_years_ip_geo # long"
|
|
statistics_VERSION_all_years_ip_geo() {
|
|
(
|
|
cd $HOME/imapsync_stats
|
|
awk '{ print $2 }' stats_imapsync_20??.ip | xargs -n1 geoiplookup > stats_imapsync_20xx.ipgeo.tmp.countries
|
|
awk '{ print $2 }' stats_imapsync_20??.ip | xargs -n1 geoiplookup -f /usr/share/GeoIP/GeoLiteCity.dat > stats_imapsync_20xx.ipgeo.tmp.cities
|
|
cat stats_imapsync_20xx.ipgeo.tmp.countries stats_imapsync_20xx.ipgeo.tmp.cities | sort | uniq -c | sort -n > stats_imapsync_20xx.ipgeo
|
|
rm stats_imapsync_20xx.ipgeo.tmp.countries stats_imapsync_20xx.ipgeo.tmp.cities
|
|
echo stats_imapsync_20xx.ipgeo
|
|
)
|
|
}
|
|
|
|
|
|
|
|
|
|
statistics_VERSION_yearly_runs() {
|
|
year=${1:-`date '+%Y'`}
|
|
(
|
|
cd $HOME/imapsync_stats
|
|
test -f stats_imapsync_${year}.ip && cat stats_imapsync_${year}.ip | awk '{ sum+=$1 } END {print sum}'
|
|
)
|
|
}
|
|
|
|
|
|
statistics_releases_monthly() {
|
|
month=${1:-`date '+%m'`}
|
|
year=${2:-`date '+%Y'`}
|
|
(
|
|
cd $HOME/imapsync_stats
|
|
test -f stats_imapsync_${year}_${month}.ip \
|
|
&& grep -o -P imapsync/'1\.\d{3}' stats_imapsync_${year}_${month}.ip \
|
|
| grep -o -P '1\.\d{3}' | sort -n | uniq -c | sort -n
|
|
)
|
|
}
|
|
|
|
statistics_releases_previous_month() {
|
|
month=${1:-`date '+%m' -d 'last month'`}
|
|
year=${2:-`date '+%Y' -d 'last month'`}
|
|
statistics_releases_monthly $month $year
|
|
}
|
|
|
|
|
|
statistics_releases_yearly() {
|
|
year=${1:-`date '+%Y'`}
|
|
(
|
|
cd $HOME/imapsync_stats
|
|
test -f stats_imapsync_${year}.ip \
|
|
&& grep -o -P imapsync/'1\.\d{3}' stats_imapsync_${year}.ip \
|
|
| grep -o -P '1\.\d{3}' | sort -n | uniq -c | sort -n
|
|
)
|
|
}
|
|
|
|
|
|
# releasecheck started on 1.349 in the imapsync code. date: 2010/09/06 00:25:03
|
|
# Disable releasecheck started on 1.584 on github Mar 5, 2014
|
|
# https://github.com/imapsync/imapsync/commits/master/imapsync
|
|
statistics_releases_all_times() {
|
|
year=${1:-`date '+%Y'`}
|
|
(
|
|
cd $HOME/imapsync_stats
|
|
grep -h -o -P imapsync/'1\.\d{3}' stats_imapsync_20??.ip \
|
|
| grep -o -P '1\.\d{3}' | sort -n | uniq -c | sort -n
|
|
)
|
|
}
|
|
|
|
statistics_perl_number_of_data_in_files()
|
|
{
|
|
grep -o -P 'perl ''(\.|\d)+' "$@" | wc -l
|
|
}
|
|
|
|
statistics_perl_monthly_old() {
|
|
month=${1:-`date '+%m'`}
|
|
year=${2:-`date '+%Y'`}
|
|
(
|
|
cd $HOME/imapsync_stats
|
|
test -f stats_imapsync_${year}_${month}.ip \
|
|
&& grep -o -P 'perl ''(\.|\d)+' stats_imapsync_${year}_${month}.ip \
|
|
| grep -o -P '(\.|\d)+' | sort -n | uniq -c | sort -n
|
|
)
|
|
}
|
|
|
|
statistics_perl_monthly() {
|
|
month=${1:-`date '+%m'`}
|
|
year=${2:-`date '+%Y'`}
|
|
(
|
|
cd $HOME/imapsync_stats
|
|
test -f stats_imapsync_${year}_${month}.ip \
|
|
&& statistics_perl_from_files stats_imapsync_${year}_${month}.ip
|
|
)
|
|
}
|
|
|
|
statistics_perl_from_files()
|
|
{
|
|
total_nb_of_users=`statistics_perl_number_of_data_in_files "$@"`
|
|
echo $total_nb_of_users
|
|
statistics_perl_from_files_cumul_percentage $total_nb_of_users "$@"
|
|
}
|
|
|
|
statistics_perl_from_files_cumul_percentage()
|
|
{
|
|
sum=$1
|
|
shift
|
|
echo statistics_perl_from_files_cumul_percentage $sum "$@"
|
|
grep -o -P 'perl ''(\.|\d)+' "$@" \
|
|
| grep -o -P '5\.\d+' \
|
|
| sort \
|
|
| datamash -g 1 count 1 \
|
|
| awk -v sum=$sum '{ printf "%s %d%%\n", $1, 100*$2/sum }'
|
|
}
|
|
|
|
|
|
statistics_perl_yearly_old() {
|
|
year=${1:-`date '+%Y'`}
|
|
(
|
|
cd $HOME/imapsync_stats
|
|
test -f stats_imapsync_${year}.ip \
|
|
&& grep -o -P 'perl ''(\.|\d)+' stats_imapsync_${year}.ip \
|
|
| grep -o -P '(\.|\d)+' | sort -n | uniq -c | sort -n
|
|
)
|
|
}
|
|
|
|
statistics_perl_yearly() {
|
|
year=${1:-`date '+%Y'`}
|
|
(
|
|
cd $HOME/imapsync_stats
|
|
test -f stats_imapsync_${year}.ip \
|
|
&& statistics_perl_from_files stats_imapsync_${year}.ip
|
|
)
|
|
}
|
|
|
|
|
|
statistics_perl_all_times_old() {
|
|
(
|
|
cd $HOME/imapsync_stats
|
|
ls -d stats_imapsync_????.ip > /dev/null || return
|
|
grep -h -o -P 'perl ''(\.|\d)+' stats_imapsync_20??.ip \
|
|
| grep -o -P '(\.|\d)+' | sort -n | uniq -c | sort -n
|
|
)
|
|
}
|
|
|
|
statistics_perl_all_times() {
|
|
(
|
|
cd $HOME/imapsync_stats
|
|
ls -d stats_imapsync_????.ip > /dev/null || return
|
|
statistics_perl_from_files stats_imapsync_20??.ip
|
|
)
|
|
}
|
|
|
|
|
|
|
|
echoq statistics_Mail_IMAPClient_monthly
|
|
statistics_Mail_IMAPClient_monthly() {
|
|
month=${1:-`date '+%m'`}
|
|
year=${2:-`date '+%Y'`}
|
|
(
|
|
cd $HOME/imapsync_stats
|
|
test -f stats_imapsync_${year}_${month}.ip \
|
|
&& grep -o -P ', ''(\.|\d)+' stats_imapsync_${year}_${month}.ip \
|
|
| grep -o -P '(\.|\d)+' | sort -n | uniq -c | sort -n
|
|
)
|
|
}
|
|
|
|
echoq statistics_Mail_IMAPClient_yearly
|
|
statistics_Mail_IMAPClient_yearly() {
|
|
year=${1:-`date '+%Y'`}
|
|
(
|
|
cd $HOME/imapsync_stats
|
|
test -f stats_imapsync_${year}.ip \
|
|
&& grep -o -P ', ''(\.|\d)+' stats_imapsync_${year}.ip \
|
|
| grep -o -P '(\.|\d)+' | sort -n | uniq -c | sort -n
|
|
)
|
|
}
|
|
|
|
statistics_Mail_IMAPClient_all_times() {
|
|
(
|
|
cd $HOME/imapsync_stats
|
|
ls -d stats_imapsync_????.ip > /dev/null || return
|
|
grep -h -o -P ', ''(\.|\d)+' stats_imapsync_20??.ip \
|
|
| grep -o -P '(\.|\d)+' | sort -n | uniq -c | sort -n
|
|
)
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
echoq "statistics_VERSION_synthesis 2012 # short"
|
|
statistics_VERSION_synthesis() {
|
|
year=${1:-`date '+%Y'`}
|
|
year_now=`date '+%Y'`
|
|
(
|
|
cd $HOME/imapsync_stats
|
|
echo && echo "==== Nb users each month in ${year} "
|
|
wc -l stats_imapsync_${year}_??.ip
|
|
echo && echo "==== Nb runs each month in ${year} "
|
|
for f in stats_imapsync_${year}_??.runs; do
|
|
test -f $f && echo -n "$f : " && tail -n 1 $f
|
|
done
|
|
echo && echo "==== % Operating systems in ${year} "
|
|
statistics_VERSION_yearly_os $year
|
|
echo && echo "==== Perl releases in ${year} "
|
|
statistics_perl_yearly $year | tail -15
|
|
echo && echo "==== Biggest users in ${year} "
|
|
tail -n 15 stats_imapsync_${year}.ip
|
|
echo && echo "==== Most releases used in ${year} "
|
|
statistics_releases_yearly ${year} | tail -15
|
|
echo && echo "==== Most releases used the previous month "
|
|
statistics_releases_previous_month | tail -10
|
|
echo && echo "==== Most releases used this month "
|
|
statistics_releases_monthly | tail -10
|
|
echo && echo "==== Nb users each year "
|
|
wc -l stats_imapsync_????.ip
|
|
echo && echo "==== Nb runs each year : "
|
|
for yyyy in `count_nice 2011 ${year_now}`; do
|
|
echo -n "$yyyy: "
|
|
statistics_VERSION_yearly_runs $yyyy
|
|
done
|
|
nb_runs_current_year=`statistics_VERSION_yearly_runs $year_now`
|
|
current_day_of_year=`date +%j`
|
|
echo; echo -n "$year_now~~"
|
|
echo "$nb_runs_current_year/$current_day_of_year*365" | bc
|
|
)
|
|
}
|
|
|
|
}
|
|
|
|
test X"`hostname`" = Xks2 && statistics_VERSION_ks
|
|
test X"`hostname`" = Xtuxinette && statistics_VERSION_lfo
|
|
|
|
|
|
niouzes_compil() {
|
|
(
|
|
cd /g/public_html/www.linux-france.org/html/
|
|
m4 niouzes.m4 > niouzes.xml
|
|
python ./niouzes/getmynews.py --neuf niouzes.xml > niouzes-neuf.html
|
|
python ./niouzes/getmynews.py --html niouzes.xml > niouzes-html.html
|
|
)
|
|
}
|
|
|
|
|
|
|
|
lfo_announce() {
|
|
software_version
|
|
NEWS_FILE="/g/public_html/www.linux-france.org/html/niouzes/niouzes_imapsync.xml"
|
|
if ! newer VERSION $NEWS_FILE; then
|
|
echo "$VERSION already announced"
|
|
else
|
|
cat > $NEWS_FILE << EOF
|
|
|
|
<news date="`date '+%Y%m%d'`">
|
|
`LANG=fr_FR date '+%A %d %B %Y'` : Synchronisez ou migrez vos boites
|
|
aux lettres avec \E9conomie et l'outil <A
|
|
HREF="prj/imapsync/">imapsync $VERSION</A> (Gilles LAMIRAL)
|
|
</news>
|
|
EOF
|
|
fi
|
|
niouzes_compil
|
|
}
|
|
|
|
#' nedit sucks with syntax color
|
|
|
|
|
|
|