Quando viene aggiornato il database trovare?
-
16-10-2019 - |
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
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.