Réduire la taille du fichier mlocate.db
Sommaire
I. Présentation
Sous Linux, la commande "locate" est très pratique pour repérer instantanément la localisation d'un ou plusieurs fichiers selon leurs noms sur le système. Cette commande permet en effet d'afficher les chemins absolus (partant de la racine système) des fichiers que l'on cherche (selon leurs noms). Cependant, lorsque nous exécutons cette commande (Ex: "locate *.png"), la commande va en faite lire un fichier de base de données qui contient l'intégralité des noms et positions de fichiers présents sur le système.
La plupart du temps, c'est la commande "updatedb" qui permet de mettre à jour ce fichier qui se nomme "/var/lib/mlocate/mlocate.db". Sur des systèmes comportant un très grand nombre de fichier, ce fichier base de données peut très rapidement attendre plusieurs centaines de Megaoctects voir plusieurs Gigaoctects. Dans ce tutoriel, nous allons voir comment réduire la taille de ce fichier en ordonnant à la commande "updatedb" d’omettre certains noms de fichiers, dossiers ou certains chemins.
II. Afficher la taille du fichier mlocate.db
Nous allons commencer par afficher la taille de ce fichier. On va dans un premier temps mettre à jour le fichier pour avoir sa bonne valeur :
updatedb
On affiche ensuite la taille du fichier :
du -sh /var/lib/mlocate/mlocate.db
Le résultat et son interprétation dépendra de si vous avez besoin de libérer un peu d'espace sur votre partition ou votre système ou non. Dans le cas ou vous jugez ce fichier trop grand, suivez la suite du tutoriel pour le réduire.
III. Exclure certains fichiers ou dossiers
La configuration de la gestion du fichier "/var/lib/mlocate/mlocate.db" ce fait dans le fichier "/etc/updatedb.conf". Plus on exclu des fichiers ou des dossiers que nous savons trop nombreux sur notre système du scan, moins le fichier "mlocate.db" aura une taille importante. Nous allons maintenant utiliser plusieurs variables dont certaines seront peut être déjà présentes dans le fichier :
- PRUNEFS : C'est une liste de systèmes de fichier qui ne devront pas être scannés et répertoriés par la commande "updatedb".
Exemple de configuration :
PRUNEFS ="NFS nfs nfs4"
- PRUNENAMES : C'est une liste de dossiers qui ne seront pas scannés et répertoriés par la commande "updatedb". On y indiquera que le nom des dossiers, pas leur chemin.
Exemple de configuration :
PRUNENAMES="log www"
- PRUNEPATHS : C'est une liste de chemins absolus de dossiers qui ne seront pas scannés et répertoriés par la commande "updatedb"
Exemple de configuration :
PRUNEPATHS="/var/log /media"
- PRUNE_BIND_MOUNTSFR : Cette variable permet d'indiquer s'il faut répertorier les montages fait sur le système. La valeur de cette variable doit être à "yes" pour répertorier les montages et à "no" pour ne pas les répertorier
Pour que les changements soient pris en compte, il faut à nouveau mettre à jour la liste de nos fichiers :
updatedb
Vous pourrez ensuite constater que le fichier "/var/lib/mlocate/mlocate.db" à diminué de taille. Il va de soit que les différents fichiers et dossiers indiqués dans le fichier "/etc/updatedb.conf" ne seront plus affichés lors des recherches avec la commande "locate"