Extraire les noms de domaine des logs

© Christian PAULUS. Document créé le 6 mars 2010 , mis à jour le 6 mars 2010.

L'homme qui ne tente rien ne se trompe qu'une fois. Lao-Tseu

Accueil du site > Astuces > Unix > Extraire les noms de domaine des logs

grep/sed/sort/uniq / Unix

Vous désirez obtenir la liste des domaines qui sont venus visiter votre site ?

Voici une petite ligne de commande qui extrait les noms de domaine d’un fichier texte.

Ce fichier texte peut être un log apache (situé en général dans /var/log). Par exemple pour le journal apache nommé httpd-access.log :

grep "http://" httpd-access.log | sed 's/^.*\(http:\/\/[^/";]*\).*/\1/' | sort | uniq

Pour SPIP, il faut extraire la table spip_referers de votre base au format csv (via phpMyAdmin), puis :

grep "http://" spip_referers.csv | sed 's/^.*\(http:\/\/[^/";]*\).*/\1/' | sort | uniq

Vous aurez comme résultat l’ensemble des URL+domaine qui se sont connectés à votre site web depuis le début de son installation sous SPIP.

Autre exemple, en retirant google dans les résultats :

grep "http://" spip_referers.csv | grep -v google | sed 's/^.*\(http:\/\/[^/";]*\).*/\1/' | sort | uniq

Plussoyez !

Les forums sont fermés.