From a08d603b49730de18cdff85be480694ddc9d828e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Didier=20Clermont=C3=A9?= Date: Tue, 19 Feb 2019 16:52:09 +0100 Subject: [PATCH] Added directory tools and script rapport_activite.sh (#3593) --- tools/rapport_activite.sh | 127 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 127 insertions(+) create mode 100755 tools/rapport_activite.sh diff --git a/tools/rapport_activite.sh b/tools/rapport_activite.sh new file mode 100755 index 00000000..35563976 --- /dev/null +++ b/tools/rapport_activite.sh @@ -0,0 +1,127 @@ +#!/bin/bash +# +# Copyright (C) 2018,2019 Didier Clermonté +# Copyright (C) 2018,2019 Christian Pierre Momon +# +# This file is part of paste.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 . +# + +# ============================================ +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 year="$2" + local yearMonth="$3" + echo -e "=================================================================" + echo + httpRequestCount=$(zgrep "$monthEnglish" /var/log/apache2/paste.chapril.org/paste.chapril.org-acces.log*|grep $year|wc -l) + echo "Nombre total de requêtes http = $httpRequestCount" + + trueHttpRequestCount=$(zgrep "$monthEnglish" /var/log/apache2/paste.chapril.org/paste.chapril.org-acces.log*|grep $year|grep -vi bot|grep -v check|wc -l) + echo "Nombre de vraies requêtes http = $trueHttpRequestCount" + + botRequestCount=$(zgrep "$monthEnglish" /var/log/apache2/paste.chapril.org/paste.chapril.org-acces.log*|grep $year|grep -i bot|grep -v check|wc -l) + echo "Nombre de requêtes bot = $botRequestCount" + + errorsRequestCount=$(zgrep "$monthEnglish" /var/log/apache2/paste.chapril.org/paste.chapril.org-error.log*|grep $year|wc -l) + echo "Nombre de requêtes http en erreur = $errorsRequestCount" + + createdPasteCount=$(grep "$yearMonth" /var/www/paste.chapril.org/paste.log | grep CREATE|wc -l) + echo "Nombre de pastes créés ce mois = $createdPasteCount" + + deletedPasteCount=$(grep "$yearMonth" /var/www/paste.chapril.org/paste.log | grep DELETE|wc -l) + echo "Nombre de pastes supprimés ce mois = $deletedPasteCount" + + commentCount=$(grep "$yearMonth" /var/www/paste.chapril.org/paste.log | grep COMMENT|wc -l) + echo "Nombre de commentaires ce mois = $commentCount" + + readPasteCount=$(grep "$yearMonth" /var/www/paste.chapril.org/paste.log | grep READ|wc -l) + echo "Nombre de lectures ce mois = $readPasteCount" + + echo "Nombre de lectures ce mois - les commentaires = $(($readPasteCount-$commentCount))" + echo +} + + +# ============================================ +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 + yearMonth="$year-0$precedingMonth" + else + yearMonth="$year-$precedingMonth" + fi + else [ $(date +%m) -eq 1 ] + precedingMonth=12 + year="$(($(date +%Y)-1))" + fi + mois="$year$precedingMonth" + monthEnglish=$(LANG=en_EN.UTF-8;date -d $year-$precedingMonth-01 +%b) + echo -e "Rapport d'activité du service paste.chapril.org du mois $monthEnglish $year" + generateReport "$monthEnglish" "$year" "$yearMonth" +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 + yearMonth="$2-0$1" + else + yearMonth="$2-$1" + fi + month="$2$1" + monthEnglish=$(LANG=en_EN.UTF-8;date -d "$2-$1-01" +%b) + year="$2" + echo -e "Rapport d'activité du service paste.chapril.org du mois $monthEnglish $2" + generateReport "$monthEnglish" "$year" "$yearMonth" + fi +elif [ "$#" -eq 0 ]; then + yearMonth="$(date +%Y-%m)" + month="$(date +%Y%m)" + monthEnglish=$(LANG=en_EN.UTF-8;date +%b) + year="$(date +%Y)" + echo -e "Rapport d'activité du service paste.chapril.org du mois $(date +%b) 20$(date +%y)" + generateReport "$monthEnglish" "$year" "$yearMonth" +else + echo -e "Bad parameter." + help +fi