#!/bin/bash
 
# Pour conserver les dates dans le bon format
export LC_ALL=en_US
 
# Date de la veille
yesterday=$(date --date '1 day ago' +%d-%m-%Y)
# On filtre sur la date [au meme format que celle contenue
# dans les logs d'apache]
filter=$(date --date '1 day ago' +%d\\/%b\\/%Y)
# Fichier de sortie [j'ai choisi un csv afin de traiter les donnees]
OutputFile=bottracker_$yesterday.csv
# Le/Les fichiers de logs a Parser
logfiles="/var/log/apache2/access/monsite.log.1"
# Si vous souhaitez checker plusieurs fichier de logs
# logfiles="/var/log/apache2/access/monsite.log.1
#/var/log/apache2/access/monsite1.log.1
#/var/log/apache2/access/monsite2.log.1
#/var/log/apache2/access/monsite3.log.1"
 
for i in $logfiles
do
  echo "------------------Rapport pour le site "${i%.l*g}------------------- >> $OutputFile
  echo >> $OutputFile
 ##################################################
 # On recup les crawls de Googlebot
 ##################################################
 nb_pg_ggb=`grep Googlebot $i | sed -ne "/"$filter"/p" | cut -d " " -f7 | uniq | wc -l`
 echo \"[GoogleBot]\",\"$nb_pg_ggb pages crawlees\" >> $OutputFile
 echo >> $OutputFile
 if [ $nb_pg_ggb -ne 0 ]
     then
     for j in `grep Googlebot $i | sed -ne "/"$filter"/p" | cut -d " " -f7 | sed 's/^/\t\t/g' | sort | uniq`
     do
     echo \"[GoogleBot]\",\"$j\" >> $OutputFile
     done
 fi
 # On insere une ligne vide
 echo >> $OutputFile
 ##################################################
 # On recup les crawls de Slurp
 ##################################################
 nb_pg_slurp=`grep Slurp $i | sed -ne "/"$filter"/p" | cut -d " " -f7 | uniq | wc -l`
 echo \"[Slurp \=\> Yahoo]\",\"$nb_pg_slurp pages crawlees\" >> $OutputFile
 echo >> $OutputFile
 if [ $nb_pg_slurp -ne 0 ]
     then
     for j in `grep Slurp $i | sed -ne "/"$filter"/p" | cut -d " " -f7 | sed 's/^/\t\t/g' | sort | uniq`
     do
       echo \"[Slurp \=\> Yahoo]\",\"$j\" >> $OutputFile
     done
 fi
 echo >> $OutputFile
 ##################################################
 # On recup les crawls de Msnbots
 ##################################################
 nb_pg_msn=`grep msnbot $i | sed -ne "/"$filter"/p" | cut -d " " -f7 | uniq | wc -l`
 echo \"[MsnBot => Bing]\",\"$nb_pg_msn pages crawlees\" >> $OutputFile
 echo >> $OutputFile
 if [ $nb_pg_msn -ne 0 ]
     then
     for j in `grep msnbot $i | sed -ne "/"$filter"/p" | cut -d " " -f7 | sed 's/^/\t\t/g' | sort | uniq`
     do
       echo \"[MsnBot \=\> Bing]\",\"$j\" >> $OutputFile
       done
 fi
done
 
# On envoie le rapport par mail
uuencode $OutputFile $OutputFile | mail -s "[RDD-BotTracker] rapport du $yesterday" -a "FROM:RDD-BotTracker" votre@email.fr
 
# On delete le rapport
rm "$OutputFile