Another Home Page Blog

Born to be root !
  • Accueil
  • Archives
  • Mentions légales
  • A propos

» Tag : Awk

  • Fil Atom des billets de ce tagFil des billets Fil Atom des commentaires de ce tagFil des commentaires

Nombre d'occurences d'un champ dans un fichier

Après la coloration d'un grep pour une histoire de cron, voici un autre cas sympathique : je souhaitais savoir qui faisait le plus de requêtes sur un serveur web (Apache), avec un classement. Un genre de top 5 ou top 10 des plus gros requêteurs de pages sur le dit serveur, en somme. J'ai cherché du côté de Awk, qui permet de manipuler à loisir les sorties de programmes et autres fichiers textes.

Comme je ne suis pas très doué en Awk, j'ai demandé à mon moteur de recherche favori (qui n'est plus Goo... d'ailleurs) comment obtenir le nombre d'occurrences d'une chaîne de caractères. La réponse se trouvait là. Par contre pour faire mon top 10, il me fallait ensuite trier la liste obtenue en utilisant le nombre d'occurrences comme critère. Après quelques pipelines et autres awk hasardeux, j'en suis venu à ça :

awk '{frequencies[$1]++;} END {for (ip in frequencies) printf "%d\t%s\n" , frequencies[ip] , ip;}' < /mon/fichier/de/log/apache | sort -gr | head -10

Grâce à Awk, j'obtiens une sortie avec d'abord le nombre de requêtes, puis l'adresse ip. J'envoie ensuite cette sortie dans sort, dont l'option -g permet de faire des tris sur des nombres et l'option -r permet d'inverser le tri. Pour finir, head me permet de limiter mon classement aux 10 meilleurs. Cette ligne ne me satisfait pas complètement, car j'ai d'abord le nombre de requêtes, puis l'adresse IP. j'aurais aimé trouver une solution élégante mais tout ce que j'ai pu faire c'est invoquer à nouveau awk après le sort. Si quelqu'un a une idée, je suis preneur ;-)

  • Par Nils | lundi, mars 1 2010 | 12:30
  • Commentaires3 commentaires CatégorieLinux et Logiciels libres TagsAwk, Linux
  • Fil Atom des commentaires de ce billetFil des commentaires de ce billet

Catégories

  • Divers (19)
  • Linux et Logiciels libres (49)
  • Sécurité (5)
  • Humour (9)
  • Humeur (21)
  • Apple - Macintosh (11)
  • Hardware (3)
  • Another Home Page (12)

Tags

  • Apache
  • Awk
  • Awstats
  • Beryl
  • Bind
  • CentOS
  • Dotclear
  • Linux
  • Mandriva
  • mp3
  • Red Hat
  • RHEL
  • RPM
  • RPMforge
  • Rémingway
  • soleil
  • ssh
  • SSL
  • thème
  • Xorg

Tous les tags

S'abonner

  • Fil des billets
  • Fil des commentaires

Propulsé par Dotclear - Thème Freshy de Julien de Luca adapté depuis Wordpress