Как запустить updatedb, исключая некоторые пути, но не удаляя предыдущий проиндексированный контент для этих путей?
У меня странный вопрос, и я не уверен, что это вообще что-то выполнимое, поэтому я задаю его SuperUser:)
Итак, представьте, что у вас есть файловая система с некоторыми точками монтирования для дополнительных разделов.
сказать что-то вроде
/ диски / диск A/ раздел A/ диски / диск A/ раздел B / диски / диск B / раздел A ... и т. д.
теперь, если все эти разделы смонтированы в соответствующих точках монтирования, при запуске updatedb будет проиндексирован весь контент в их файловой системе. Хорошо.
Теперь я пытаюсь настроить своего рода файловый сервер с низким потреблением и жестким диском, где я хотел бы использовать автомонтирование, где я хотел бы индексировать файлы, но где я не хочу запускать индексацию для этих дополнительных ездит каждый день.
Итак, чего я хочу добиться, так это запустить updatedb таким образом, чтобы некоторые пути (в моем случае эти пути выше) могли быть исключены из индексации, НО в то же время, не удаляя предыдущее содержимое, индексированное для этих путей.
я вижу, что updatedb имеет несколько опций "сокращения", которые позволяют исключить определенные пути из процесса индексации. Но это также подразумевает отказ от всей информации о содержании, связанной с этими путями. Вместо этого я хотел бы исключить определенные пути, сохранив то, что ранее уже было проиндексировано в этих путях.
У кого-нибудь есть идеи, как добиться этого с помощью mlocate, или какой другой инструмент использовать для этого? Спасибо
1 ответ
Создать несколько индексов
Используйте mlocate для поиска нескольких файлов базы данных одновременно. Все, что вы хотите исключить, не следует сканировать в первую очередь. Забудьте о правилах монтируемых и неустановленных исключений и создайте индексы для важных расположений.
Приведенный пример может быть адаптирован к вашей ситуации без особых усилий...
Вообще говоря, вы можете создать несколько индексных файлов с updatedb
и обновлять их одновременно или по очереди так часто, как вы хотите (через crond
, например).
Если существует глобальный файл /etc/updatedb.conf, то, вероятно, целесообразно исключить пути, которые будут иметь свои собственные индексы - поскольку сканирование (создание индекса) одного и того же местоположения более одного раза даст несколько результатов при сканировании (поиске) для поиска то же место
После создания двоичных "словарей" для всех местоположений настройте функцию в оболочке;
function fooLocate { / usr / bin / locate \ -d /var/tmp/default.mlocate.db \ -d /my-stuff/mlocate-index2.db $ @ }
Соответствующая документация
(сделать man updatedb
тоже)
человек найти * прокрутка прокрутка прокрутка *
DBDATH Замените базу данных по умолчанию на DBPATH. DBPATH - это:-отдельный список имена файлов базы данных. (...) Пустое имя файла базы данных заменяется базой данных по умолчанию. База данных Имя файла - относится к стандартному вводу. Обратите внимание, что базу данных можно прочитать со стандартного ввода только один раз.
пример
# updatedb -o /home/jaroslav/.locate/media-music.db -U /mnt/media/media/ \ -n изображения \ -n фильмы \ -n steamapps \ -n pr0n -v # locate -i glass -d /home/jaroslav/.locate/media-music.db | туалет 35 # locate -i glass -d /home/jaroslav/.locate/media-music.db \ -d /var/lib/mlocate/mlocate.db | туалет 363