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)