Aujourd’hui, c’est un billet de distraction pour geeks.
Lister les recherches
Si vous utilisez Apache, voici une commande qui liste dans l’ordre alphabétique les recherches Google ayant permis aux internautes d’arriver sur vos sites :
php -r "echo urldecode(\"`zgrep 'http://www\.google\.\w*/' /var/log/apache2/*|grep -o '[?&]q=[^&"]*'|cut -c4-`\");"|sort|uniq -c
EDIT 25/06/2011 : cette commande semble échouer lorsque la liste des recherches est trop longue, celle donnée à la fin du billet est donc à préférer.
(pour les autres moteurs de recherche, il faudrait s’inspirer de ce qu’ont fait les développeurs de Piwik)
Voici à quoi ressemble le résultat de la commande :
1 ubtunu tiny tiny rss
5 ubuntu
1 ubuntu 10.04 change startup screen
1 ubuntu 10.04 configurer compte messagerie hotmail dans couriel
3 ubuntu 10.04 cryptage
1 ubuntu 10.04 écran grub invisible au démarrage
2 ubuntu 10.04 ecran noir nvidia
1 ubuntu 10.04 et video nvidia
1 ubuntu 10.04 grub nvidia
1 ubuntu 10.04 grub-pc couleur
4 ubuntu 10.04 installation partition home chiffrée
Le texte correspond aux recherches, le numéro devant indique le nombre de fois où elles ont été effectuées.
Analyse
Billets les plus recherchés
Sans conteste, les deux billets qui amènent le plus d’internautes par Google concernent pluzz et apk. Et parfois ça ne doit pas les aider beaucoup : certains recherchent par exemple « pluzz plus belle la vie » dans Google à partir d’Internet Explorer, je ne suis pas sûr que mon script shell pour pluzz réponde à leurs attentes.
Recherches insolites
Dans la liste, il y a forcément des recherches drôles ou étranges. En voici quelques unes que j’ai trouvées dans mes logs :
- « clitoris.apk » : il y a vraiment une application pour tout !
- « comment afficher 350 sous linux » : c’est si différent que sur les autres systèmes d’exploitation ?
- « comment on invente une machine pour voler à usage individuelle » : dérober ou s’envoler ?
- « du-ble-plein-les-poches es ce une arnaque » : sans doute…
- « est-il possible de prelever de l’argent sans que ça se voit sur le compte » : je veux rester discret…
- « l’ecran d’un ordinateur portable est de 14,1 pouce avec 1024*768 pixel quelle est la taille de l’ecran N*H en cm ? » : le moteur de recherche, j’en suis sûr, va comprendre ma question, faire le calcul, et me répondre…
- « logiciel adopy » : comme ça se prononce !
- « pour quel raison on doit interdire le zoo » : les animaux c’est dangereux !
Il y a certains sites qui s’amusent à référencer ce genre de recherches, par exemple Comment devenir un ninja gratuitement ?
N’hésitez pas à poster les vôtres…
Challenge
J’ai essayé d’écrire la commande la plus courte possible. Je n’ai pas réussi à faire moins de 129 caractères sans perdre d’information ou prendre plus de risque (par exemple on pourrait remplacer apache2 par a*2, mais c’est plus risqué).
Par contre, cette commande ne fonctionne pas correctement si l’on rajoute |less (on ne peut pas se déplacer avec haut et bas), je ne sais pas trop pourquoi ni comment le résoudre (si certains ont une idée).
Une autre commande, sans php (en 141 caractères), ne pose pas ce problème :
zgrep 'http://www\.google\.\w*/' /var/log/apache2/*|grep -o '[?&]q=[^&"]*'|cut -c4-|echo -e $(sed 's/$/\\n/;s/+/ /g;s/%/\\x/g')|sort|uniq -c
Si vous avez des astuces pour faire mieux que 129 (ou 141), ne vous gênez pas
Scripts
D’autres ont fait des scripts plus complets, qui permettent de récupérer des informations supplémentaires, par exemple la page sur laquelle l’internaute est arrivé en effectuant cette recherche…


http://i.imgur.com/j9QEz.png :/
@Kooothor
Tu as des
\\au lieu de\sur ta capture d’écran…Marche po
Par contre
marche très bien
@Fugitif
Qu’est-ce qui est important comme changement entre tes deux commandes ?
php5au lieu dephpou le fait de ne lire qu’un seul fichier de log ?Et la commande donnée à la fin du billet fonctionne-t-elle mieux ?
Pour réduire un peu la taille, remplacer «
zcat truc|grep machin» par «zgrep machin truc»@Leto2
Merci, j’ai remplacé dans le billet, ça fait gagner 7 caractères (et j’ai appris quelque chose ^^).
C’est pas l’ajout du
php5qui arrange les choses, mais le faite de ne prendre en compte qu’un seul log de apache2. Chez moi j’ai modifier logrotate pour garder 52 fichiers en .gz, donc pas mal de boulot pourzgrep.De toutes façon
/usr/bin/phpsur Ubuntu 10.04 n’est qu’un lien vers/etc/alternatives/phpqui est lui même un lien vers/usr/bin/php5La 2ème commande fonctionne mieux, mais serai plus lisible avec un
|sort -nrà la fin pour afficher les recherches les plus utiliser en premier.Là c’est trier par ordre alphabétique.
Je dis peut-être une connerie, mais en mettant
*à la place de «http://« , qui ne sert pas a grand chose ?@Francis
Ta commande ne fonctionne pas, par contre
fonctionne.
Un
http://en moinsHS : Tu sais que ton post arrive en première page de la recherche « google plus » ?
@lekant
En recherchant quoi ? La chaîne de caractères « google plus » ?
Si oui, c’est sans doute parce que tu es logué avec ton compte Google, et qu’il fait le lien avec ton Google reader. Car chez moi ce n’est pas le cas ^^
À ce sujet, lire Le risque de l’individualisation de l’internet.
« google plus »
tout simplement.
@lekant
la recherche « google plus » ne mène pas ici
Je vois d’ailleurs pas le lien entre google+ et se blog lol
Google orienterait ses recherches en fonction des partages Greader? vu que je partage souvent ce qu’il y a sur ce blog… eh bien au temps pour moi
La publicité ciblé c’est pas nouveau chez Google.
IDEE :: Est-ce que ceci te convient ?
En fait les parenthèses vont permettre au shell de créer un nouveau processus dans lequel sera effectuée ta commande et une fois ce processus terminé, le résultat sera finalement renvoyé dans l’ entrée standard de less. Il est possible que rien ne se passe à l’écran pendant que le processus s’exécute, cependant des qu’il sera terminé le résultat sera lu (ligne par ligne ce qui est plus souple pour les tres gros fichiers) par less.
@St3f
Ce n’était pas la commande que tu as utilisée entre les parenthèses qui ne fonctionnait pas avec
less, mais celle avecphp.Ceci étant dit, j’ai appliqué le principe à cette commande :
et ça ne fonctionne pas mieux avec
less.Mais bon, de toute façon la première commande que j’ai donnée avec
phpest à éviter, elle ne fonctionne que si le nombre de recherches est très faible.Au temps pour moi …
C’est vrai que j’ai lu (un peu trop vite sûrement
) les commentaires et avait cru comprendre que la commande (que j’ ai mis entre parenthèse dans mon dernier post) était celle qui fonctionnait mais, que son résultat n’était pas lu correctement avec « less »…
Désolé. Cela dit, peut-être que ma bourde aura servie à quelque lecteur
@+!
Sympa.
Je m’en sert pour mon proxy.
Par contre j’aimerai sortir les IP avec…