A voir également:
- AWK et traitement de logs
- View recovery logs - Guide
- Traitement de texte gratuit - Guide
- Traitement de texte gratuit open office - Télécharger - Suite bureautique
- Dictionnaire des maladies et traitement - Télécharger - Bureautique
- Acquisition de données pci et contrôleur de traitement du signal ✓ - Forum Pilotes (drivers)
4 réponses
fiddy
Messages postés
11069
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
23 avril 2022
1 844
16 mars 2009 à 13:48
16 mars 2009 à 13:48
Ca change pas mal de choses.
Avec un simple script perl, cela se fait en deux coups de cuillère à pot.
toto.pl
Pour lancer utiliser le fichier : cat Log | toto.pl
N'oublie pas de faire chmod u+x pour mettre les droits nécessaires à l'exécution du programme.
De plus, le script toto.pl réalise juste la sortie de la forme : www.google.fr 81 visites 678098 Ko.
Je ne savais par quoi tu voulais trier, je te laisse modifier le script perl ;)
Si tu sais pas, tu peux passer par sort.
Pour le tri par nombre de visites :
cat Log | toto.pl | sort -rn -k3
Pour le tri par somme des rcvd :
cat Log | toto.pl | sort -rn -k5
Cdlt
Avec un simple script perl, cela se fait en deux coups de cuillère à pot.
toto.pl
#!/usr/bin/perl use strict;use warnings; my %tab; while (<STDIN>) { /dstname=(.*) rcvd=(.*)/; $tab{$1}[0]++; $tab{$1}[1]+=$2; } foreach my $k (keys %tab) { print "$k visites $tab{$k}[0] visites $tab{$k}[1] Ko\n"; }
Pour lancer utiliser le fichier : cat Log | toto.pl
N'oublie pas de faire chmod u+x pour mettre les droits nécessaires à l'exécution du programme.
De plus, le script toto.pl réalise juste la sortie de la forme : www.google.fr 81 visites 678098 Ko.
Je ne savais par quoi tu voulais trier, je te laisse modifier le script perl ;)
Si tu sais pas, tu peux passer par sort.
Pour le tri par nombre de visites :
cat Log | toto.pl | sort -rn -k3
Pour le tri par somme des rcvd :
cat Log | toto.pl | sort -rn -k5
Cdlt
fiddy
Messages postés
11069
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
23 avril 2022
1 844
16 mars 2009 à 12:18
16 mars 2009 à 12:18
Salut,
Il y a sûrement plus court, mais tu peux utiliser :
Le premier sed va rajouter une colonne contenant le champ rcvd. Grâce à cette colonne, on va trier suivant les valeurs numériques (sort -n). Et enfin on supprime cette colonne.
Si tu veux récupérer la colonne dstname :
Cdlt
Il y a sûrement plus court, mais tu peux utiliser :
sed 's/.* rcvd=\([0-9]*\)/\1\|&/' Log | sort -rn | cut -d'|' -f2
Le premier sed va rajouter une colonne contenant le champ rcvd. Grâce à cette colonne, on va trier suivant les valeurs numériques (sort -n). Et enfin on supprime cette colonne.
Si tu veux récupérer la colonne dstname :
sed 's/.* rcvd=\([0-9]*\)/\1\|&/' Log | sort -rn | awk '{print $2}'
Cdlt
Merci fiddy, mais j'ai oublié de préciser qqchose: les logs que je reçois correspondent à des trames. Donc, j'ai plusieurs fois les mêmes sites qui apparaissent:
src=10.0.0.2 dstname=www.google.fr rcvd=3123
src=10.11.20.56 dstname=www.yahoo.com rcvd=12987
src=10.0.1.4 dstname=www.google.fr rcvd=6453
...
En fait, il faudrait que je compte le nombre de fois ou un site apparait, et que j'additionne le nombre de "rcvd" correspondant. Pour obtenir quelche chose dans ce genre:
www.google.fr 81 visites 678098 Ko
www.yahoo.com 21 visites 56989 Ko
...
src=10.0.0.2 dstname=www.google.fr rcvd=3123
src=10.11.20.56 dstname=www.yahoo.com rcvd=12987
src=10.0.1.4 dstname=www.google.fr rcvd=6453
...
En fait, il faudrait que je compte le nombre de fois ou un site apparait, et que j'additionne le nombre de "rcvd" correspondant. Pour obtenir quelche chose dans ce genre:
www.google.fr 81 visites 678098 Ko
www.yahoo.com 21 visites 56989 Ko
...