我已经设置了一个单独的 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
不会被编入索引。
它运行在 Azure 中的 Centos 7 VM 上,cifs
挂载方式为Azure Files
共享。其挂载方式/etc/fstab
如下:
//my_storage.file.core.windows.net/my_files /datadrive cifs vers=3.0,用户名=my_username,密码=my_password,dir_mode=0777,file_mode=0777 0 0
所以问题是——我如何让它索引新文件?
答案1
您需要先使用 更新数据库updatedb
。您可以像下面这样修改脚本:
/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