在加密分区上,updatedb 通常不会索引加密的主目录。要在用户登录时运行定位 (updatedb),必须将定位数据库的该部分保存在用户加密的 $HOME 下。
export LOCATE_PATH="$HOME/var/mlocate.db"
然后运行 updatedb 来索引 $HOME 中的文件:
updatedb -l 0 -o $HOME/var/mlocate.db -U $HOME
这给出了 $HOME 的完整索引,并且除非 $HOME 被挂载和解密,否则数据库不可见。
由于 ubuntu 的 rc 文件基础设施不断变化,我很困惑应该在哪个位置(即哪个文件)添加这些行?
编辑:当前运行的是 Ubuntu 14.04
答案1
/etc/rc*
根本不在结构中- 这是用于系统启动、运行级别转换,而不是用于用户内容。当rc
脚本运行时,系统仅部分启动,唯一的UID
是0
(root
)。
我每天凌晨 2:05updatedb
从我的跑出crontab
。这是我的 的台词crontab
:
02 05 * * * /usr/bin/updatedb -l 0 -o /home/w3/var/mlocate/mlocate.db -U /home/w3
请注意,必须安排此作业在用户登录并挂载未加密目录cron
时运行。w3