bash, awk, grep, sed, uniq... - Shell/Batch - Programmation
Marsh Posté le 10-03-2008 à 08:34:15
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.
Marsh Posté le 09-03-2008 à 21:56:14
Bonsoir tout le monde !
J'aimerais à l'aide d'un script pouvoir extraire les hosts des 3 plus gros consommateur de hits de mon site (sans passer par awstats).
J'ai réussi à pondre ça mais je n'ai aucune idée de la façon d'insérer un " host xxx.xxx.xxx.xxx | awk '{print $5}' (et accessoirement en supprimant le point à la fin) dans mon :
J'ai bien conscience qu'il y a moyen de faire un truc plus propre mais j'avoue que j'ai un peu de mal avec le bash
Merci d'avance.