Je trouve que le plus simple c'est de passer par un petit script PERL, avec une hashmap ça se fait tout seul :
perl -ne '{ ($h, ) = split / /; $hosts{$h}++; } END{ foreach $key ( sort keys %hosts ) { print "$hosts{$key} - $key\n"; } }' access_log | sort -nr |
Et tu n'as plus qu'à ajouter un "| head -3" pour ne conserver que les 3 premiers.
Il faut une dizaine de secondes sur mon serveur pour parser un fichier >100Mo.
Message édité par Elmoricq le 10-03-2008 à 08:35:37