Как мне указать locate сохранить индекс внешнего HDD?


2

Я изменил свою конфигурацию, поэтому locate также выполняет поиск по внешним жестким дискам, которые установлены в /media.

Мой /etc/updatedb.conf:

PRUNE_BIND_MOUNTS="yes"
# PRUNENAMES=".git .bzr .hg .svn"
PRUNEPATHS="/tmp /var/spool /home/.ecryptfs /media/Win8"
PRUNEFS=...(rest is default)

мой основной жесткий диск я всегда использую

/media/rubo77/Data

если он подключен, и я запускаю updatedbего, он индексируется, но каждый раз, когда я запускаю свой компьютер с отсоединенным жестким диском, ежедневные данные /etc/cron.daily/mlocateочищают его.

Я бы тоже хотел найти файлы на отключенном устройстве. Если я не хочу, я всегда могу использовать, locate -eчто показывает только существующие файлы.

Как я могу указать locate сохранить индекс для файлов на носителе, если диск не смонтирован, чтобы я мог находить файлы на отсоединенном устройстве?

Ответы:


1

Мне кажется, у вас есть несколько вариантов здесь:

  1. Очевидно, что лучший способ сделать именно то, что вы хотите, - это попросить cron подождать, пока диск не смонтируется, прежде чем обновлять базу данных. Я представляю кого-то, кто намного лучше знаком с cron и / или bash, чем я мог бы рассказать вам, как это сделать.

  2. Что вы могли бы сделать, хотя это не совсем то, что вы хотите, это создать новую базу данных только для съемного диска . Смотрите этот тесно связанный вопрос для получения подробных инструкций о том, как это сделать. Тогда вам просто нужно вручную обновить базу данных, когда диск смонтирован.

  3. Если содержимое диска меняется не часто , есть много альтернатив. Для меня у меня много разных внешних накопителей, поэтому для каждого из них я буду часто передавать команду, например, ls -RD1в текстовый файл , а затем я могу просто использовать grep и другие инструменты, когда захочу.


Хорошие обходные пути, но все же лучшим решением будет флаг "keep" для locate или что-то подобное. Может быть, я должен сделать запрос функции для разработчиков
rubo77

1
Это решает это для меня: я добавляю эти псевдонимы в ~/.bashrc file: alias updatedb-external='sudo updatedb -l 0 -o ~/.externalharddisk.db -U /media/externalharddisk'иalias locate-external='locate -d ~/.externalharddisk.db:'
rubo77
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.