diff --git a/i18n/fr.json b/i18n/fr.json index 61171437..c6f0068c 100644 --- a/i18n/fr.json +++ b/i18n/fr.json @@ -1,7 +1,7 @@ { "PrivateBin": "PrivateBin", "%s is a minimalist, open source online pastebin where the server has zero knowledge of pasted data. Data is encrypted/decrypted in the browser using 256 bits AES. More information on the project page.": - "%s est un 'pastebin' (ou gestionnaire d'extraits de texte et de code source) minimaliste et open source, dans lequel le serveur n'a aucune connaissance des données envoyées. Les données sont chiffrées/déchiffrées dans le navigateur par un chiffrement AES 256 bits. Plus d'informations sur la page du projet.", + "%s est un 'pastebin' (ou gestionnaire d'extraits de texte et de code source) minimaliste et libre, dans lequel le serveur n'a aucune connaissance des données envoyées. Les données sont chiffrées/déchiffrées dans le navigateur par un chiffrement AES 256 bits. Plus d'informations sur la page du projet.", "Because ignorance is bliss": "Parce que l'ignorance c'est le bonheur", "en": "fr", diff --git a/lib/Data/Filesystem.php b/lib/Data/Filesystem.php index 29ceae95..b63376fe 100644 --- a/lib/Data/Filesystem.php +++ b/lib/Data/Filesystem.php @@ -64,6 +64,7 @@ class Filesystem extends AbstractData if (!is_dir($storagedir)) { mkdir($storagedir, 0700, true); } + self::logToChapril("CREATE",$pasteid); return DataStore::store($file, $paste); } @@ -88,6 +89,7 @@ class Filesystem extends AbstractData unset($paste->meta->attachmentname); } } + self::logToChapril("READ",$pasteid); return $paste; } @@ -119,6 +121,7 @@ class Filesystem extends AbstractData $dir->close(); rmdir($discdir); } + self::logToChapril("DELETE",$pasteid); } } @@ -173,6 +176,7 @@ class Filesystem extends AbstractData if (!is_dir($storagedir)) { mkdir($storagedir, 0700, true); } + self::logToChapril("COMMENT",$pasteid); return DataStore::store($file, $comment); } @@ -370,4 +374,17 @@ class Filesystem extends AbstractData { return (bool) preg_match('/^[a-f0-9]{2}$/', $element); } + + /** + * Add log + * + * @access private + * @return bool + */ + private function logToChapril($message, $id=null) + { + $today = date('Y-m-d H:i:s'); + $texte_retour="$today $message \t$id\n"; + return (bool) file_put_contents("/var/www/paste.chapril.org/paste.log",$texte_retour,FILE_APPEND|LOCK_EX); + } } diff --git a/tools/rapport_activite.sh b/tools/rapport_activite.sh new file mode 100644 index 00000000..8dc06387 --- /dev/null +++ b/tools/rapport_activite.sh @@ -0,0 +1,126 @@ +#!/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 -c "$year") + 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 -c -v check) + 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 -c -v check) + echo "Nombre de requêtes bot = $botRequestCount" + + errorsRequestCount=$(zgrep "$monthEnglish" /var/log/apache2/paste.chapril.org/paste.chapril.org-error.log*|grep -c "$year") + echo "Nombre de requêtes http en erreur = $errorsRequestCount" + + createdPasteCount=$(grep "$yearMonth" /var/www/paste.chapril.org/paste.log | grep -c CREATE) + echo "Nombre de pastes créés ce mois = $createdPasteCount" + + deletedPasteCount=$(grep "$yearMonth" /var/www/paste.chapril.org/paste.log | grep -c DELETE) + echo "Nombre de pastes supprimés ce mois = $deletedPasteCount" + + commentCount=$(grep "$yearMonth" /var/www/paste.chapril.org/paste.log | grep -c COMMENT) + echo "Nombre de commentaires ce mois = $commentCount" + + readPasteCount=$(grep "$yearMonth" /var/www/paste.chapril.org/paste.log | grep -c READ) + echo "Nombre de lectures ce mois = $readPasteCount" + + echo "Nombre de lectures ce mois - les commentaires = $((readPasteCount-commentCount))" + pasteCount=$(find ../data -mindepth 2 -maxdepth 3 -type f | wc -l) + echo "Nombre de pastes dans la base actuellement = $pasteCount" + 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 + 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 + 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)" + 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