Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
locate [Le 08/01/2009, 11:29]
sylvainsjc
locate [Le 06/05/2023, 09:59] (Version actuelle)
92.137.30.180 [Installation] plocate
Ligne 1: Ligne 1:
-<​note>​Cette documentation est réalisée sur la base d'​ubuntu hardy mais elle est valable et utilisable sur beaucoup d'​autres distributions</​note>​ +{{tag>recherche ​cron optimisation}} 
-Tags : {{tag>recherche_ligne_commande catfish deskbar ​cron optimisation}}+----
  
-====== locate (locate) ======+====== locate (mlocate) ======
  
-===== Pourquoi faire =====+===== A quoi ça sert ? =====
  
 Dans un terminal, //locate// permet de localiser immédiatement n'​importe quel fichier ou répertoire présent sur votre système (y compris les fichiers cachés). Dans un terminal, //locate// permet de localiser immédiatement n'​importe quel fichier ou répertoire présent sur votre système (y compris les fichiers cachés).
  
-A la différence de la commande //find//, //locate// va vous donner le résultat de votre recherche immédiatement. find offre cependant beaucoup plus de possibilités+A la différence de la commande //[[:​tutoriel/​console_commandes_de_base#​find|find]]//, //locate// va vous donner le résultat de votre recherche immédiatement. find offre cependant beaucoup plus de possibilités
  
-//locate// est en fait un fichier lien vers le programme //mlocate//+//locate// est en fait un fichier lien vers le programme //​mlocate// ​devenu **//​plocate//​** sur Ubuntu en 2022.
  
 ===== Principe ===== ===== Principe =====
  
-//locate// est rapide parce qu'au lieu de parcourir toute l'​arborescence du système (comme le fait find), ​c'​est ​une base de donnée ​qui contient la liste de tous les fichiers et répertoires qui va fournir le résultat de la recherche.+//locate// est rapide parce qu'au lieu de parcourir ​en « //live// » toute l'​arborescence du système (comme le fait //find//), une base de données ou //index// est régulièrement mis à jour qui contient la liste de tous les fichiers et répertoires. C'est cet index statique ​qui va être exploré très rapidement et fournir le résultat de la recherche ​lors de l'​utilisation de //locate//.
  
-Cette base de donnée ​est mise à jour quotidiennement grâce au programme //anacron//+La base de données ​est automatiquement ​mise à jour quotidiennement grâce au programme //[[anacron]]//.
  
-<note tip>//​anacron//​ est un programme qui permet l'​exécution de tâches quotidiennes,​ hebdomadaires ou mensuelles sur un système de type Unix. +<note tip>//[[anacron]]// est un programme qui permet l'​exécution de tâches quotidiennes,​ hebdomadaires ou mensuelles sur un système de type Unix.</​note>​
-</​note>​+
  
-Sur un PC allumé 24h/24, la base de donnée ​est updatée chaque ​jour à 7h30Sinon si la tâche ​n'a pu être réalisée ​à l'​heure prévuec'est 5 minutes après ​avoir démarré ​le PC que l'​update de cette base sera fait (vous voyez votre voyant disque dur s'​activiter pendant 1 ou 2 minutes)+La base de données ​est mise à jour quotidiennement ​à 7 h 30Si la machine ​n'était pas allumée ​à ce moment précisla mise à jour est déclenchée ​5 minutes après le prochain démarrage.
  
-//locate// indexe ​tout le système de fichiersun utilisateur ​pourra ​connaître le contenu de dossiers dont il n'a pas les droits. Si cet aspect vous gène, il faudra remplacer mlocate par slocate.+//locate// indexe ​l'​ensemble du système de fichiers ​un utilisateur ​lambda peut utiliser //locate// pour connaître le contenu de dossiers dont il n'a pas les droits. Si cet aspect vous gêne, il faudra remplacer ​//mlocate// (//​plocate//​ depuis 2022) par //slocate//. Ce n'est en général pas un problème sur une machine personnelle dont l'​accès est sécurisé, mais c'est un point à garder en tête pour une utilisation sur serveur ou dans un contexte à accès partagé.
  
-plutôt ​que de relire l'​ensemble du contenu de tous les répertoires chaque fois que la base de données est mise à jour, //locate// conserve des informations d'​horodatage dans sa base de données de telle sorte qu'il puisse savoir si le contenu d'un répertoire a changé sans le relire. Cela rend les mises à jour plus rapides et sollicite moins le disque dur. Cette fonctionnalité est uniquement disponible dans mlocate.+Plutôt ​que de relire l'​ensemble du contenu de tous les répertoires chaque fois que la base de données est mise à jour, //locate// conserve des informations d'​horodatage dans sa base de données de telle sorte qu'il puisse savoir si le contenu d'un répertoire a changé sans le relire. Cela rend les mises à jour plus rapides et sollicite moins le disque dur. Cette fonctionnalité est par contre ​uniquement disponible dans //mlocate// (//​plocate//​ depuis 2022).
  
-Les adeptes de l'​hibernation ou de la mise en veille ​doivent ​mettre à jour la base de donnée ​manuellement pour pouvoir utiliser //​locate// ​car dans ce cas, le PC ne fonctionne ​pas à l'​heure de la mise à jour et ne passe pas par l'étape du redémarrage+<​note>​Avant la version 13.10 d'​Ubuntu,​ les adeptes de l'​hibernation ou de la mise en veille ​devaient potentiellement ​mettre à jour la base de données ​manuellement pour pouvoir utiliser //locate//dans le cas où leur PC ne fonctionnait ​pas à l'​heure ​exacte prévue ​de la mise à jour de l'indexDésormais, la mise à jour est automatiquement lancée à la sortie de veille.</​note>​
  
 ===== Installation ===== ===== Installation =====
  
-locate est installé normalement de base sur ubuntu sinon :  +La commande //locate// est fournie par le paquet [[apt>mlocate]], lequel est normalement pré-installé. Si ce n'est pas le cas :
-   ​sudo ​apt-get install ​mlocate+
  
-L'​installation de mlocate ​modifiera le binaire ///​usr/​bin/​locate//​ pour pointer sur mlocate via le mécanisme des alternatives. Après l'​installation,​ vous devriez exécuter /​etc/​cron.daily/​mlocate manuellement pour créer la base de données, sinon mlocate ne fonctionnera pas avant que cron ne l'ait exécuté une première fois.+   sudo apt-get install ​mlocate
  
-la base de donnée ​se trouve ici : ///var/lib/mlocate/mlocate.db// +Un fichier script //mlocate// (//​plocate//​ depuis 2022) est placé dans /​etc/​cron.daily pour être exécuté chaque jour et mettre à jour la base de donnée ​mlocate (//var/lib/plocate/plocate.db/// depuis 2022). L'​installation de //​mlocate// ​/ //plocate// modifie le binaire ///​usr/​bin/​locate//​ pour pointer sur la version //mlocate// / //​plocate//​. Si //mlocate// / //plocate// n'​était pas pré-installé sur votre système, que vous ayez réalisé une installation manuelle et que vous souhaitiez utiliser //locate// sans attendre, vous devez exécuter ​/​etc/​cron.daily/mlocate (etc/​cron.daily/​plocate depuis 2022) manuellement (une seule fois) dans un terminal ​pour créer la base de données, faute de quoi la commande de recherche //locate// ne fonctionnera pas correctement.
- +
-Un fichier script ​//​mlocate// ​est placé dans /​etc/​cron.daily pour être exécuté chaque jour+
 ===== Fonctionnement ===== ===== Fonctionnement =====
 ==== Utilisation de locate ==== ==== Utilisation de locate ====
  
-Rechercher par exemple le fichier "​.profile"​+Rechercher par exemple le fichier "​.profile" ​:
  
    ​locate .profile    ​locate .profile
  
-Rechercher tous les fichiers mp3 (en majuscules et minuscules) en affichant page par page +Rechercher tous les fichiers mp3 (en majuscules et minuscules) en affichant page par page 
-   ​locate -i sting | less + 
-==== Mise à jour manuellement ​de la base de donnée ​====+   ​locate -i mp3 | less 
 + 
 +=== Mise à jour manuelle ​de la base de données ​====
  
    sudo updatedb    sudo updatedb
 +
 +=== Exclusion de répertoire de l'​indexation ===
 +
 +L'​indexation d'une grande quantité de fichiers est consommatrice de ressources/​temps et nécessite un espace disque important. Il peut donc se révéler intéressant d'​exclure certains répertoires de l'​indexation.
 +
 +Cela se fait dans le fichier **/​etc/​updatedb.conf** en ajoutant le répertoire en question dans les **PRUNEPATHS** :
 +
 +<file bash /​etc/​updatedb.conf>​
 +PRUNEPATHS="/​tmp /var/spool /media /​home/​.ecryptfs /data"
 +</​file>​
 +
 +Dans cet exemple, les fichiers contenus dans les répertoires /tmp /var/spool, /media, /​home/​.ecryptfs et /data sont exclus de l'​indexation.
 +
 +
  
 ==== Modification de l'​heure de l'​exécution de la mise à jour ==== ==== Modification de l'​heure de l'​exécution de la mise à jour ====
  
-<note important>​Ceci oblige de modifier l'​heure d'​exécution de anacron donc ce seront ​toutes les tâches ​executées ​par anacron qui seront ​executées ​à l'​heure de votre choix</​note>​+<note important>​Ceci oblige de modifier l'​heure d'​exécution de [[anacron]] donc ce sera toutes les tâches ​exécutées ​par [[anacron]] qui seront ​exécutées ​à l'​heure de votre choix</​note>​
  
 Modifier le fichier /​etc/​cron.d/​anacron Modifier le fichier /​etc/​cron.d/​anacron
Ligne 61: Ligne 73:
    30 7    * * *   ​root test -x /​etc/​init.d/​anacron && /​usr/​sbin/​invoke-rc.d anacron start >/​dev/​null    30 7    * * *   ​root test -x /​etc/​init.d/​anacron && /​usr/​sbin/​invoke-rc.d anacron start >/​dev/​null
  
-Pour passer l'execution ​à 5h45 du matin :+Pour passer l'exécution ​à 5h45 du matin :
    45 5    * * *   ​root test -x /​etc/​init.d/​anacron && /​usr/​sbin/​invoke-rc.d anacron start >/​dev/​null    45 5    * * *   ​root test -x /​etc/​init.d/​anacron && /​usr/​sbin/​invoke-rc.d anacron start >/​dev/​null
  
  
-Sites relatifs  +Sites relatifs 
-[[http://​packages.ubuntu.com/​fr/intrepid/​anacron|anacron]]+[[https://​packages.ubuntu.com/​fr/​anacron|anacron]] 
  
 +Auteur : [[utilisateurs/​sylvainsjc]]
  
-by [[utilisateurs/​sylvainsjc]]+Contributeurs :
  • locate.1231410547.txt.gz
  • Dernière modification: Le 18/04/2011, 14:44
  • (modification externe)