#!/bin/sh
##
## Analyse
##
## Made by Tab <rv@crans.org> 
##
## Started on  Tue 09 Oct 2001 01:28:25 AM CEST tab 
## MAJ : 06/02/2003 -- Fred

TEMPFILE="/tmp/analyse.mail"

# Options pour les stats traffic
PROG="/usr/scripts/analyse_komaz/nacct.py"
OPTIONS="-N 15"
OPTIONS2="-N 15 -c 2"
OPTIONS3="-N 15 -c 5"

# Divers chemins
BLACKLIST="/var/zamok/CRANS/blacklist.cf"
AUTODISC_LOG="/var/log/autodisconnect.log"
VIRUS_BLACKLIST="/tmp/virus_blacklist"

#################################################################################
# Machines ayant été disconnectées dans les 24h :
# affichage de leur historique

echo "Bilan des autodisconnexions des dernières 24h :" >> $TEMPFILE
echo "=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=" >> $TEMPFILE

if [ -e $AUTODISC_LOG ]; then 
    for host in $(awk -F'[ .]' '/'$(date --date=yesterday  +%d-%m-%Y)'-(0[7-9]|1|2)|'$(date +%d-%m-%Y)'-0[0-6]/ {print $2}' $AUTODISC_LOG)
    do
        echo "$host :"
	( awk -F'-' '/'$host'.crans.org/ {print $3$2"@"$1"/"$2"/"$3" : autodisconnecté"}' $AUTODISC_LOG
	awk -F'[:/ ]' '/^'$host'/ || /^#'$host'/  {print $6$5"@"$4"/"$5"/"$6" : déco manuelle (->"$7"/"$8"/"$9")"}' $BLACKLIST ) \
	| sort -r \
	| awk -F@ '{print "\t"$2}'
    done  >> $TEMPFILE
else
    echo -e "Problème avec $AUTODISC_LOG" >> $TEMPFILE
fi

echo -e "\n" >> $TEMPFILE

#################################################################################
# Vérolés

if [ -e $VIRUS_BLACKLIST ]; then
   echo "Bilan des bloquages web pour virus :" >> $TEMPFILE
   echo "=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-" >> $TEMPFILE

   echo "Il y a $(wc -l $VIRUS_BLACKLIST | awk '{print $1}') machines infectées."  >> $TEMPFILE

   if [ -e  $VIRUS_BLACKLIST.hier ] ; then
     diff -U0 -s $VIRUS_BLACKLIST.hier $VIRUS_BLACKLIST \
     | egrep  -v '\-\-\-|\+\+\+|@@' >> $TEMPFILE
   else
     cat $VIRUS_BLACKLIST >> $TEMPFILE
   fi
   cp -f $VIRUS_BLACKLIST $VIRUS_BLACKLIST.hier
   echo -e "\n" >> $TEMPFILE
fi

#################################################################################
# Statistiques

echo "Statistiques upload/download :" >> $TEMPFILE
echo "=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-" >> $TEMPFILE

if [ -x $PROG ]; then 
    echo -e "Upload (Download) pur normal :\n" >> $TEMPFILE
    $PROG $OPTIONS | tail -15 | awk -F "|" '{print $1" ("$3")"" "$7}' >> $TEMPFILE
    echo -e "\nUpload total normal :\n" >> $TEMPFILE
    $PROG $OPTIONS2 | tail -15 | awk -F "|" '{print $2" "$7}' >> $TEMPFILE
    echo -e "\nUpload total exempté :\n" >> $TEMPFILE
    $PROG $OPTIONS3 | tail -15 | awk -F "|" '{print $5" "$7}' >> $TEMPFILE
else
    echo -e "Problème avec $PROG" >> $TEMPFILE
fi

#################################################################################
# Envoi du mail
cat $TEMPFILE |/usr/bin/mail -s "Stats -- $(date --date=yesterday +%A\ %d\ %B\ %Y)" disconnect@crans.org
rm -f $TEMPFILE
