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)