#!/bin/sh # # Script vidant la poubelle de mails en me faisant un décompte du nombre de # spams et virus reçus. export LANG="fr_FR" export LC_ALL="fr_FR" JOUR=`date "+%d %B %Y à %H:%M"` TRASHPART=`date "+%Y%m%d%H%M"` LOCK=/tmp/$LOGNAME-spamrotate.lock MAIL=0 if [ "$1" = "-m" ]; then MAIL=1 fi if [ -f $LOCK ]; then exit fi touch $LOCK #TRASH=`grep "TRASH" $HOME/.procmailrc | sed -e 's,^[^=]*=\(.*\)$,\1,'` source $HOME/.procmailrc # Attente de la fin de procmail... # FETCHMAILRUN=`ps aux | grep $LOGNAME | grep fetchmail | grep -v grep` while [ "$FETCHMAILRUN" != "" ]; do sleep 10 FETCHMAILRUN=`ps aux | grep $LOGNAME | grep fetchmail | grep -v grep` done mv $TRASH $TRASH-$TRASHPART.old touch $TRASH # Comptage des spams # NBMAILS=`grep "^From " $TRASH-$TRASHPART.old | wc -l | awk '{print $1}'` if [ $NBMAILS != 0 ]; then TEXTE="Il y a eu $NBMAILS spam(s) ou virus pour le $JOUR." else # Mouarf ! Si ça arrive, le nainternette est cassé ! TEXTE="Il n'y a pas eu de spam ou virus pour le $JOUR." fi # Récupération des sujets # if [ $NBMAILS != 0 ]; then REGEXP="[sS][uU][bB][jJ][eE][cC][tT]:" SUJETS=`grep -Ei '^(Subject:|X-TN-TRASH:)' $TRASH-$TRASHPART.old | \ sed -e "s/^$REGEXP/ */;s/^X-TN-TRASH:/ /"` TAILLE=`/bin/ls -lh $TRASH-$TRASHPART.old | awk '{print $5}'` TEXTE="$TEXTE\n\nMessage(s) déplacés dans $TRASH-$TRASHPART.old ($TAILLE)." TEXTE="$TEXTE\n\nSujet(s) :\n$SUJETS" else rm -f $TRASH-$TRASHPART.old fi if [ $MAIL = 1 ]; then echo -e "$TEXTE" | mail $LOGNAME -s "Liste des spams et virus $TRASHPART" else echo -e "$TEXTE" if [ -f $TRASH-$TRASHPART.old ]; then rm $TRASH mv $TRASH-$TRASHPART.old $TRASH fi fi rm -f $LOCK