Clarifier fichiers de log

Résolu/Fermé
avrelbct Messages postés 307 Date d'inscription mardi 20 mars 2007 Statut Membre Dernière intervention 17 février 2011 - 7 juil. 2010 à 18:22
avrelbct Messages postés 307 Date d'inscription mardi 20 mars 2007 Statut Membre Dernière intervention 17 février 2011 - 15 juil. 2010 à 14:27
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 jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 4 895
7 juil. 2010 à 18:37
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 307 Date d'inscription mardi 20 mars 2007 Statut Membre Dernière intervention 17 février 2011 55
8 juil. 2010 à 10:31
ç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 jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 4 895
8 juil. 2010 à 12:07
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 307 Date d'inscription mardi 20 mars 2007 Statut Membre Dernière intervention 17 février 2011 55
8 juil. 2010 à 15:26
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 jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 4 895
8 juil. 2010 à 16:05
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 307 Date d'inscription mardi 20 mars 2007 Statut Membre Dernière intervention 17 février 2011 55
15 juil. 2010 à 14:27
bah après il faut chercher les autre variables et faire un print de celles ci, et c'est ok.
0