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 時,僅執行數據庫的更新操作,會比較快。