Domanda

Io uso il comando locate nel Terminal regolarmente. Quando fa il suo database si aggiorna? In altri sistemi, ho potuto eseguire updatedb come root per costringerlo a aggiornamento.

Nota: Lo so usando mdfind per la ricerca con il riflettore è un'altra opzione

È stato utile?

Soluzione

La individuare database viene aggiornato dal seguente cronjob:

/private/etc/periodic/weekly/310.locate

Sulla maggior parte dei sistemi Mac, Cron è stato sostituito da launchd , e ti scoprire che /etc/crontab non esiste. La pianificazione per il processo pianificato viene determinata dalla launchd, e può essere visto con uno dei seguenti comandi:

% cat /System/Library/LaunchDaemons/com.apple.periodic-weekly.plist
    #### SNIP
<dict>
    <key>Hour</key>
    <integer>3</integer>
    <key>Minute</key>
    <integer>15</integer>
    <key>Weekday</key>
    <integer>6</integer>
</dict>

In alternativa, qualcosa di un po utente più amichevole:

% open /System/Library/LaunchDaemons/com.apple.periodic-weekly.plist

launchd verrà quindi eseguire i processi specificati in /etc/periodic/{daily,weekly,monthly}/*, utilizzando questo programma.

Altri suggerimenti

sudo periodic weekly è il modo più semplice per dare il via allo script settimanale che chiamerà il normale ricostruzione del database locate.

Come notato launchd inizierà questo script sabato alle 03:15 se il Mac è in esecuzione. Se il Mac sta dormendo in quel momento, verrà eseguito quando il mac si sveglia. Non verrà eseguito se il Mac è spento al momento magico.

Dalla pagina di manuale individuare:

FILES
 /var/db/locate.database          locate database
 /usr/libexec/locate.updatedb     Script to update the locate database
 /etc/periodic/weekly/310.locate  Script that starts the database rebuild

Per impostazione predefinita, il database viene ricostruito ogni settimana attraverso launchd. È possibile eseguire manualmente locate.updatedb di fare l'aggiornamento.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a apple.stackexchange
scroll top