Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
3071 connectés 

  FORUM HardWare.fr
  Programmation
  Shell/Batch

  bash, awk, grep, sed, uniq...

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

bash, awk, grep, sed, uniq...

n°1699632
LibreArbit​re
La /root est longue
Posté le 09-03-2008 à 21:56:14  profilanswer
 

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 :
 

Code :
  1. cat access.log | grep "/~[^/]*" | awk '{ print $1; }' | uniq -cd  | sort -gr | head | awk '{ print $2; }'


 
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.

mood
Publicité
Posté le 09-03-2008 à 21:56:14  profilanswer
 

n°1699690
Elmoricq
Modérateur
Posté le 10-03-2008 à 08:34:15  profilanswer
 

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

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Shell/Batch

  bash, awk, grep, sed, uniq...

 

Sujets relatifs
Lancer un bash shell [newbie]Scripting bash
Script bashéquivalent de trap(bash) en python ?
[c++]faire un grep dans un fichier (newbie style..)[SHELL]Utilisation du resultat de ma commande GREP pour un nul [CLOS]
[BASH] test si variable contient ./* [Résolu][BASH] Cron en seconde? / Comparaison de deux variables
[BASH] Probleme cron et autres [Résolu][Resolu] [Bash] Ecrire le résultat d'une commande dans un fichier HTML
Plus de sujets relatifs à : bash, awk, grep, sed, uniq...


Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)