Saltar al contenido

Cómo actualizar el caché de “localización” de Linux

Hacemos una verificación completa cada enunciados en nuestra página web con el objetivo de mostrarte siempre la información con la mayor veracidad y actualizada.

Solución:

El comando es:

sudo updatedb

Ver man updatedb para más detalles.

En OSX esto es: sudo /usr/libexec/locate.updatedb

Que se puede vincular con: sudo ln -s /usr/libexec/locate.updatedb /usr/local/bin/updatedb

Parece una tontería tener que hacer un enlace simbólico para un comando estándar de Unix, pero ahí está.

Mientras que la respuesta:

sudo updatedb

es técnicamente correcto, casi nunca es una buena idea ejecutar updatedb en una línea de comando por sí mismo, si también hay un trabajo cron instalado. Dependiendo del sabor de Unix, el cronjob contiene disposiciones de bloqueo y cualquier cantidad de configuración que no esté cubierta por el independiente. updatedb mando.

Si la base de datos de localización necesita actualizarse con frecuencia, definitivamente vale la pena el esfuerzo de determinar el trabajo cron adecuado para un host específico y ejecutarlo manualmente.

Dependiendo del administrador, el cronjob para updatedb puede estar oculto en varios lugares. Entonces, un simple intento de fuerza bruta para encontrar el trabajo cron sería:

( sudo crontab -l > /tmp/crontab.root;
  ( echo /tmp/crontab.root; ls -1d /etc/*cron* /etc/*cron*/* ) 
  | tr 'n' '' 
  | xargs -0 -r -e grep -nH -e updatedb;
  rm -f /tmp/crontab.root
) 2>/dev/null

que muestra el siguiente resultado en uno de mis sistemas Ubuntu:

/etc/cron.daily/mlocate:5:[ -x /usr/bin/updatedb.mlocate ] || exit 0
/etc/cron.daily/mlocate:21:flock --nonblock /run/mlocate.daily.lock $IONICE /usr/bin/updatedb.mlocate

Por lo tanto, el comando correcto para actualizar la base de datos de localización en este caso es

sudo /etc/cron.daily/mlocate

Un enfoque más sistemático consiste en determinar el paquete que proporciona locate y updatedb.

Por ejemplo, en un sistema operativo con paquete apt/dpkg, puede encontrar qué versión de localizar está instalada con:

dpkg -S locate | grep /bin/

En mi caso es:

mlocate: /usr/bin/updatedb.mlocate

Para ver qué trabajo cron, si es que hay alguno, es el responsable, ejecute:

dpkg -L mlocate | grep cron

Que en mi caso muestra:

/etc/cron.daily
/etc/cron.daily/mlocate

Para actualizar la base de datos, ejecute el trabajo cron como root:

sudo /etc/cron.daily/mlocate

Si no hay cronjob, y updatedb por sí solo no funciona, intente encontrar su versión instalada con:

dpkg -L mlocate | grep /bin/

que devuelve:

/usr/bin/mlocate
/usr/bin/updatedb.mlocate

NB: si rechaza esta respuesta, sea tan amable y hágame saber por qué la respuesta del aficionado se considera mejor.

Te mostramos reseñas y calificaciones

Si para ti ha sido de ayuda nuestro post, te agradeceríamos que lo compartas con el resto desarrolladores y nos ayudes a extender nuestra información.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *