Clarifier fichiers de log

Résolu
avrelbct Messages postés 311 Date d'inscription   Statut Membre Dernière intervention   -  
avrelbct Messages postés 311 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

Je voudrais clarifier un peu un fichier de log . Je voudrais pouvoir supprimer la fin de la ligne à partir d'un caractère donné, ou à partir d'un certains nombre de caractère.

J'ai cherché sur le net, mais j'ai rien trouvé qui explique ce que je veux faire.
Je pense qu'il faut que j'utilise SED, que je redirige le résultat dans un fichier à moi si je veux garder ça.

Par exemple j'ai cette ligne là :

192.168.1.1 - - [28/Jun/2010:13:17:14 +0200] "GET /index.php?page=image HTTP/1.1" 200 1185 "http://sitetest/index.php?page=ftp2" "Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.5; fr; rv:1.9.2.4) Gecko/20100611 Firefox/3.6.4"

Je voudrais pouvoir supprimer ce qui concerne le navigateur et l'ordinateur, garder que l'ip du visiteur, et les pages qu'il visite.

Merci de l'aide que vous pourriez m'apporter.



A voir également:

3 réponses

jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 896
 
Salut,

Essaye ça :

egrep -o '([0-9]{1,3}\.){3}[0-9]{1,3} |http://[^"]*' 

Qui devrait te renvoyer ça sur l'exemple que tu as donné...

192.168.1.1
http://sitetest/index.php?page=ftp2

;-))
0
avrelbct Messages postés 311 Date d'inscription   Statut Membre Dernière intervention   55
 
ça marche, mais pas tout à fait comme je voudrais, la commande renvoie aussi les chiffres qui sont dans cette partie de la ligne: " (Macintosh; U; Intel Mac OS X 10.5; fr; rv:1.9.2.4) Gecko/20100611 Firefox/3.6.4" "

le 1.9.2.4 là en l'occurence.
y'aurait pas moyen de genre supprimer toute la fin de la ligne, à partir du "GET/" par exemple, commun à toutes les lignes? et ensuite repasser dessus pour ne garder que l'IP. Pour garder les pages je peux faire un premier passage en gardant que ça.

Merci de votre aide.
0
jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 896
 
T'as bien copié la syntaxe que je t'ai donnée (notamment l'espace après le "3}" et avant le pipe "|" qui est là justement pour éviter de prendre le numéro de révision ;-\)

jp@MDK:~/tmpfs ssh$ cat plop
192.168.1.1 - - [28/Jun/2010:13:17:14 +0200] "GET /index.php?page=image HTTP/1.1" 200 1185 "http://sitetest/index.php?page=ftp2" "Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.5; fr; rv:1.9.2.4) Gecko/20100611 Firefox/3.6.4"

# Avec espace
jp@MDK:~/tmpfs ssh$ egrep -o '([0-9]{1,3}\.){3}[0-9]{1,3} |http://[^"]*' plop
192.168.1.1
http://sitetest/index.php?page=ftp2

# Sans espace
jp@MDK:~/tmpfs ssh$ egrep -o '([0-9]{1,3}\.){3}[0-9]{1,3}|http://[^"]*' plop
192.168.1.1
http://sitetest/index.php?page=ftp2
1.9.2.4

jp@MDK:~/tmpfs ssh$
0
avrelbct Messages postés 311 Date d'inscription   Statut Membre Dernière intervention   55
 
Merci bien, et en fait j'ai fait plus simple...

awk '{print $1}' /var/log/apache2/access.log.1 > testgrep/test.txt
0
jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 896
 
Oui mais ça ne répond pas à la demande initiale :-(((

Je voudrais pouvoir supprimer ce qui concerne le navigateur et l'ordinateur, garder que l'ip du visiteur, et les pages qu'il visite.
0
avrelbct Messages postés 311 Date d'inscription   Statut Membre Dernière intervention   55
 
bah après il faut chercher les autre variables et faire un print de celles ci, et c'est ok.
0