4 votos

¿Hacer que locator.updatedb se ejecute diariamente en Snow Leopard sin hackear /System/Library?

En Snow Leopard, el locate La base de datos se actualiza una vez a la semana mediante una tarea launchd, /System/Library/LaunchDaemons/com.apple.locate.plist . Me gustaría hacer que el actualizador se ejecute diariamente, pero AFAIK se considera muy mala forma para editar cualquier cosa en /System .

¿Cuál es la mejor manera de cambiar su StartCalendarInterval ¿así que se ejecuta una vez al día?

6voto

Scott Saad Puntos 247

Según tengo entendido, esa tarea de la carpeta System launchd no hace otra cosa que ejecutar /usr/libexec/locate.updatedb sí mismo.

Así que simplemente crea tu propio trabajo launchd ejecutando /usr/libexec/locate.updatedb que se ejecuta una vez al día.

Como nota al margen, aquí está la respuesta de un Super Usuario que recomienda utilizar mdfind -name <filename> en lugar de locate para poder utilizar la base de datos Spotlight, que se actualiza continuamente.

Y esto Pregunta Respuesta diferente tiene más información sobre la creación de trabajos de launchd si necesitas más ayuda con eso.

0voto

moodforaday Puntos 2633

El problema con 'locate' y con Spotlight es que no busca en todos los archivos. Solía ser posible solucionar esto mediante la actualización de la actualización de la base de datos como Root, lo que le advertiría que era un agujero de seguridad potencial (es decir, cualquier persona con acceso de lectura a la base de datos podría obtener una lista de todos los archivos en el $HOME de cualquier usuario), pero como la mayoría de los usuarios de Mac son el único usuario en sus ordenadores, eso no era una gran preocupación.

Finalmente me harté tanto que escribí mi propio script que lo hará:

  • hacer un índice de texto plano de cada archivo, enlace y directorio
  • buscar en ese índice utilizando egrep
  • ofrecen restringir las búsquedas a $HOME o al directorio actual si se dan ciertos argumentos
  • si no se encuentra nada en el índice, ofrecer la actualización del índice, o buscar con mdfind

Puedes descargar el script aquí [Enlace a Dropbox]. Debería ser bastante fácil entender cómo funciona con sólo leerlo.

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X