Auteur Sujet: [Ubuntu] updatedb fonctionnement et fichier de configuration  (Lu 530 fois)

0 Membres et 1 Invité sur ce sujet

Hors ligne melodie

  • Administrateur
  • Membre Héroïque
  • *****
  • Messages: 1690
    • Citrotux
[Ubuntu] updatedb fonctionnement et fichier de configuration
« le: 27 juillet 2016 à 23:25:32 »
Je trouvais depuis quelques temps que updatedb ne me trouvait rien du tout. J'ai appris il y a plus de 10 ans que "locate" lancé après updatedb cherche un motif comme une brute, sur tous les volumes montés. Mais là, rien. J'ai fait une recherche il y a quelques instants, et c'est en fait la configuration qui est en cause.

Voici maintenant la différence entre mon fichier /etc/updatedb.conf et le fichier d'origine, sous Ubuntu Xenial (et ça vaut aussi pour les versions antérieures au moins jusqu'à Trusty):
# diff updatedb.conf updatedb.conf-BACK
1c1
< # PRUNE_BIND_MOUNTS="yes"
---
> PRUNE_BIND_MOUNTS="yes"
3c3
< PRUNEPATHS="/tmp /var/spool /home/.ecryptfs /var/lib/schroot"
---
> PRUNEPATHS="/tmp /var/spool /media /home/.ecryptfs /var/lib/schroot"

C'est à dire que j'ai commenté la ligne PRUNE_BIND_MOUNTS="yes" pour la désactiver (en ajoutant un signe # au début de la ligne), et j'ai supprimé la valeur /media dans la variable PRUNEPATHS, car tout volume monté en espace utilisateur (en cliquant à la souris sur une partition voisine, un autre disque dur branché, une clé USB… ) est monté par défaut dans le répertoire /media. Donc, pas question d'interdire à "updatedb" d'ajouter dans sa base de données les fichiers qui s'y trouvent !

quand à PRUNE_BIND_MOUNTS pour comprendre ce qu'il fait, c'est le man 5 de updatedb.conf qu'il faut consulter:
$ man 5 updatedb.conf
Citer
       PRUNE_BIND_MOUNTS
              One of the strings 0, no, 1 or yes.  If PRUNE_BIND_MOUNTS is 1 or yes, bind mounts are not scanned by updatedb(8).  All file systems mounted in the subtree of a bind
              mount are skipped as well, even if they are not bind mounts.  As an exception, bind mounts of a directory on itself are not skipped.

              By default, bind mounts are not skipped.

Que dit-il donc ? Il dit que l'une des chaînes de caractères : 0, no, 1 ou yes peuvent être employées comme valeurs. Et si PRUNE_BIND_MOUNTS="1" ou ="yes", alors les partitions montées avec bind sont ignorées par updatedb. Tous les systèmes de fichiers montés sous l'arborescence d'un montage de bind sont aussi ignorés, même s'ils ne sont pas des montages en bind. Exceptionnellement, les les montages en bind d'un répertoire sur lui-même ne sont pas ignorés.

Par défaut, les montages en bind ne sont pas ignorés.


Pour être clairs : s'il n'y avait pas cette option que j'ai commentée, ces montages seraient quoi qu'il en soit répertoriés dans la base de données des fichiers, par la commande "updatedb" lancée avec les droits d'administrateur. À noter, que la commande "locate" qui la suit peut être lancée en tant que simple utilisateur (recommandé).

Good leaders being scarce, following yourself is allowed.