Я создал отдельную базу данных mlocate для индексации настраиваемого каталога, она обновляется с помощью задачи cron, но по какой-то причине он не индексирует файлы, созданные с момента первого создания базы данных. Индексированный каталог находится на монтировании cifs
, но я удалил cifs
из PRUNEFS
в /etc/updatedb.conf
. команда, которая выполняется ежечасно:
/usr/bin/updatedb -l0 -U /datadrive/data -o /tmp/locate.db
Если я удалю /tmp/locate.db
и выполню команду updatedb, то все файлы будут правильно проиндексированы. Если я запустил его снова, то файлы новее, чем исходный /tmp/locate.db
, не будут индексироваться.
Это работает на виртуальной машине Centos 7 в Azure, а монтирование cifs
является общим ресурсом Azure Files
. Он смонтирован в / etc / fstab
следующим образом:
// my_storage.file.core.windows.net/my_files / datadrive cifs vers = 3.0, username = my_username, password = my_password, dir_mode = 0777, file_mode = 0777 0 0
Итак, вопрос в том, как заставить индексировать новые файлы?
Сначала необходимо обновить базу данных с помощью updateb
. Вы можете модифицировать свой скрипт так, как показано ниже:
/usr/bin/updatedb; /usr/bin/updatedb -l0 -U /home/shui/data -o /tmp/locate.db
Я тестирую в своей лаборатории, это работает на меня.
[root@shui tmp]# ls -alt locate.db
-rw-r-----. 1 root slocate 164858 Apr 27 03:58 locate.db
[root@shui tmp]# updatedb
[root@shui tmp]# updatedb -l0 -U /home/shui/data -o /tmp/locate.db
[root@shui tmp]# ls -alt locate.db
-rw-r--r--. 1 root root 159136 Apr 27 04:07 locate.db