Parse de log avec awk - Shell/Batch - Programmation
Marsh Posté le 05-10-2011 à 11:42:24
Utilises plutôt perl, qui est parfait pour faire cela.
A+,
Marsh Posté le 05-10-2011 à 12:21:46
L'ennuie c'est que je n'y connais rien du tout en programmation et donc en perl.
Marsh Posté le 05-10-2011 à 14:39:29
Tu peux voir perl comme du Awk survitaminé.
Si tu sais faire du SQL (> si j'aurais été bien plus à l'aise avec des where et des group by) tu peux apprendre le perl de base sans pb.
Un petit exemple qui va calculer la somme du traffic pour chaque page (identifiée par son IP et nom de page):
Code :
|
C:\Perl>perl logdata.pl |
A+,
Marsh Posté le 04-10-2011 à 21:42:54
Hello,
J'ai un petit soucis avec mes parses de logs, j'aimerai passer par awk pour faire ça mais la je bloque.
Je m'explique, normalement on lis le fichier ligne par ligne on extrait les champs, mais j'aimerai avoir le nombre de connexion sur une page/un site pour chaque IP et faire une moyenne de traffic pour cette page
Ex de mon fichier :
id_connexion date heure port nom_page traffic ip
1 10/11/10 12h30 80 index.php 280 10.120.111.1
2 16/11/10 10h35 80 test.php 288 10.129.111.1
3 19/11/10 11h54 80 index.php 390 10.120.111.1
4 28/12/10 22h28 80 index.php 400 10.120.111.9
En gros j'aimerai savoir combien de fois index.php a été visité et la moyenne de traffic pour cette page afin d'obtenir un truc du genre :
page moyenne visités
index.php 1070 3
Je pensais commencer avec sort nom_page puis sort ip histoire de faciliter le traitement qui va suivre.
Et appliquer des filtres sur la sortie pour garder les 5 pages les plus visités (nombre de visites) puis en volume avec la moyenne par volume et l'inverse.
Après est ce possible d'avoir la répartition du traffic pour l'adresse 10.120.111.1 ou les adresses ip contenant 120 qui passent sur les sites les plus visités ?
Accessoirement, on peut pas faire d'histogramme en mode console avec awk ?
-
Vu la taille potentielle des logs que je vais avoir, mettre ça dans une BDD n'est pas envisageable même si j'aurais été bien plus à l'aise avec des where et des group by et en théorie sur le papier et des modèles de maths ça marche très bien.
Merci d'avance de votre aide.