Linux 命令(93)—— updatedb 命令
- 2019 年 11 月 13 日
- 笔记
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/K346K346/article/details/103028183
1.命令简介
updatedb 命令用于更新 locate 命令使用的数据库。本文介绍的是 GNU 版本的 updatedb,其它版本的选项会有所不同。
updatedb 作用的数据库名称由配置文件(一般为 /etc/updatedb.conf)或命令行参数确定(一般为 /var/lib/mlocate/mlocate.db),由系统每日执行 updatedb 更新一次,更新脚本一般为 /etc/cron.daily/mlocate,在配置文件 /etc/anacrontab 中被调用,由 anacron 每天运行一次。
anacron 是如何被启动的呢?守护进程 cron 会运行 /etc/cron.d/0hourly,在 /etc/cron.d/0hourly 文件里,有一条 cron 任务是这样的:
01 * * * * root run-parts /etc/cron.hourly
这条 cron 任务会运行 /etc/cron.hourly 目录下的所有脚本,其中有一个名为 0anacron 的脚本,该脚本则会在合适的时间运行 anacron,anacron 则会检查 /etc/anacrontab,在合适的时间分别运行 /etc/cron.daily,/etc/cron.weekly,/etc/cron.monthly 目录下的脚本。
2.命令格式
ps [options]
3.选项说明
--localpaths='PATH1 PATH2...' 将本地目录而非网络目录放入数据库。默认为 / --netpaths='PATH1 PATH2...' 将网络(NFS、AFS、RFS 等)目录放入数据库。环境变量 NETPATHS 也设置这个值。默认是没有的 --prunepaths='PATH1 PATH2...' 指定不加入数据库的目录。可以由环境变量 PRUNEPATHS 指定,默认为 /tmp /usr/tmp /var/tmp /afs --prunefs='PATH...' 指定不能放到数据库中的文件系统。环境变量 PRUNEFS 也设置这个值。默认是 nfs NFS proc --output=DBFILE 指定输出的数据库 --localuser=USER 指定搜索非网络目录的用户,默认为当前用户。可以使用环境变量 LOCALUSER 来设置 --netuser=USER 指定搜索网络用户的用户,默认为 daemon。 可以使用环境变量 NETUSER 来设置 --dbformat=F 指定数据库的格式,默认为 LOCATE02。另外,还支持 slocate 格式。当使用slocate格式时,生成的数据库被标记为安全级别 1。如果你想建一个系统范围的 slocate 数据库,以 root 运行 updatedb --version 显示版本信息并退出 --help 显示帮助信息并退出
4.常用示例
(1)更新默认数据库。
updatedb
(2)指定目录生成数据库。
updatedb --localpaths='/root' --output=homelocate.db
注意,第一次运行 updatedb 时,由于新创建目录下所有文件的信息的数据会比较慢。第二次使用 updatedb 时,仅执行数据库的更新操作,会比较快。
参考文献
[1] updatedb manual [2] 详解:(cron , crontab , anacron)