J'essaie d'écrire un petit script shell à exécuter une fois par heure et de renvoyer tous les utilisateurs et adresses IP qui ont envoyé des e-mails dans l'heure pour que je puisse trouver des comptes compromis.Limiter les résultats de grep d'un journal exim
Je reçois les données que je veux via:
grep "A=dovecot_login" /var/log/exim_mainlog | sed -e 's#H=.* \[##' -e 's#\]:[0-9]*##' | awk '{print $5,$6}' | sort | uniq -c
Mais je veux limiter les résultats à un peu l'heure précédente (donc si je le lance à 10 heures, les résultats seraient les logins de 9h à 10h).
Une idée de comment limiter cela? Je pensais que je me rapprochais avec
hour=`date | awk {'print $4'} | cut -d: -f 1`; lasthour=`expr $hour - 1`; grep "`date -I` $lasthour" /var/log/exim_mainlog | grep "A=dovecot_login" | sed -e 's#H=.* \[##' -e 's#\]:[0-9]*##' | awk '{print $5,$6}' | sort | uniq -c
Mais je n'ai pas aimé là.
TIA
Votre approche est "sous-optimale". – AnFi