2019-02-20 15:29:17 +01:00
#!/bin/bash
#
# Copyright (C) 2018,2019 Didier Clermonté <dclermonte@april.org>
# Copyright (C) 2018,2019 Christian Pierre Momon <christian.momon@devinsy.fr>
#
# This file is part of date.chapril.org.
#
# This script is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as
# published by the Free Software Foundation, either version 3 of the
# License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Affero General Public License for more details.
#
# You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#
# ============================================
help( )
{
echo "Usage:"
echo " $( basename " $0 " ) -h display help "
echo " $( basename " $0 " ) analyse current month "
echo " $( basename " $0 " ) -p analyse preceding month "
echo " $( basename " $0 " ) month_number year analyse this month "
}
generateReport( )
{
local monthEnglish = " $1 "
local month = " $2 "
local year = " $3 "
echo -e "================================================================="
echo
creationCount = $( grep "CREATE_POLL" /var/www/date.chapril.org/admin/stdout.log | grep -c " $month " )
echo " Nombre de sondages créés = $creationCount "
deletionCount = $( grep "DELETE_POLL" /var/www/date.chapril.org/admin/stdout.log | grep -c " $month " )
echo " Nombre de sondages supprimés = $deletionCount "
pollCount = $( echo "SELECT count(*) from fd_poll;" | mysql --silent -u root date_chapril_org_db)
echo " Nombre total de sondages dans la base = $pollCount "
purgeCount = $( grep "EXPIRATION_SUCCESS" /var/www/date.chapril.org/admin/stdout.log | grep -c " $month " )
echo " Nombre de sondages purgés = $purgeCount "
pollExpiredCount = $( echo "SELECT count(*) from fd_poll where end_date > now();" | mysql --silent -u root date_chapril_org_db)
echo " Nombre de sondages expirés = $pollExpiredCount "
httpRequestCount = $( zgrep " $monthEnglish " /var/log/apache2/date.chapril.org/date.chapril.org-acces.log*| grep -c " $year " )
echo " Nombre total de requêtes http = $httpRequestCount "
trueHttpRequestCount = $( zgrep " $monthEnglish " /var/log/apache2/date.chapril.org/date.chapril.org-acces.log*| grep " $year " | grep -vi bot| grep -c -v check)
echo " Nombre de vraies requêtes http = $trueHttpRequestCount "
2019-03-25 17:09:06 +01:00
botRequestCount = $( zgrep " $monthEnglish " /var/log/apache2/date.chapril.org/date.chapril.org-acces.log*| grep " $year " | grep -i bot| grep -c -v check)
2019-02-20 15:29:17 +01:00
echo " Nombre de requêtes bot = $botRequestCount "
errorRequestCount = $( zgrep " $monthEnglish " /var/log/apache2/date.chapril.org/date.chapril.org-error.log*| grep -c " $year " )
echo " Nombre de requêtes http en erreur = $errorRequestCount "
databaseSize = $( mysql --silent -u root date_chapril_org_db -e "SELECT round(sum(data_length+index_length)/1024/1024,3) AS 'Size (MB)' FROM information_schema.tables WHERE table_schema='date_chapril_org_db';" )
echo " Taille de la base de données = $databaseSize MB "
echo -e "\n"
}
# ============================================
echo
if [ " $# " = 1 ] && [ " $1 " = "-h" ] ; then
help
elif [ " $# " = 1 ] && [ " $1 " = "-p" ] ; then
if [ " $( date +%m) " -gt 1 ] ; then
precedingMonth = " $(( $( date +%m) - 1 )) "
year = " $( date +%Y) "
if [ $precedingMonth -lt 10 ] ; then
month = " ${ year } 0 $precedingMonth "
else
month = " $year $precedingMonth "
fi
else
precedingMonth = 12
year = " $(( $( date +%Y) - 1 )) "
fi
monthEnglish = $( LANG = en_EN.UTF-8; date -d $year -$precedingMonth -01 +%b)
echo -e " Rapport d'activité du service date.chapril.org du mois $monthEnglish $year "
generateReport " $monthEnglish " " $month " " $year "
elif [ " $# " -eq 2 ] ; then
if ! ( let " $1 " ) 2>/dev/null; then
echo -e "Le mois doit être numérique."
help
elif ( [ " $1 " -lt 1 ] || [ " $1 " -gt 12 ] ) ; then
echo -e " Numéro du mois non valable $1 . "
help
elif ! ( let " $2 " ) 2>/dev/null; then
echo -e "L'année doit être numérique."
help
elif [ " $2 " -lt 2018 ] || [ " $2 " -gt " $( date +%Y) " ] ; then
echo -e " Année non valable $2 . "
help
elif [ " $2 " -le 2017 ] || [ " $2 " -ge $(( $( date +%Y) + 1 )) ] ; then
echo -e "Pas de données pour ce mois."
help
else
if [ " $1 " -lt 10 ] ; then
month = " $2 " 0" $1 "
else
month = " $2 " " $1 "
fi
monthEnglish = $( LANG = en_EN.UTF-8; date -d " $2 - $1 -01 " +%b)
year = " $2 "
echo -e " Rapport d'activité du service date.chapril.org du mois $monthEnglish $2 "
generateReport " $monthEnglish " " $month " " $year "
fi
elif [ " $# " -eq 0 ] ; then
month = " $( date +%Y%m) "
monthEnglish = $( LANG = en_EN.UTF-8; date +%b)
year = " $( date +%Y) "
echo -e " Rapport d'activité du service date.chapril.org du mois $( date +%b) 20 $( date +%y) "
generateReport " $monthEnglish " " $month " " $year "
else
echo -e "Bad parameter."
help
fi