locateデータベースの更新

locateコマンドはファイルを検索するコマンドで、ファイル名の全部または一部を引数に渡すことで該当するファイルを検索することができます。
このlocateコマンドはlocateデータベースというファイルに、ディスク内のファイル情報を保存しているため高速にファイルを検索できます。

[参考記事] ファイルを検索するコマンド locate (updatedbの高速化)

dailyのcronで通常深夜4時に自動更新されます。

つまりOSインストール直後や深夜に起動していないOSではlocateコマンドは使用できません。

その場合、次のようなエラーが出ます。

locate: database too small: /var/db/locate.database
locate: can not open `/var/lib/mlocate/mlocate.db': そのようなファイルやディレクトリはありません
locate: can not open `/var/lib/mlocate/mlocate.db': No such file or directory
warning: locate: could not open database: /var/lib/slocate/slocate.db: No such file or directory
warning: You need to run the 'updatedb' command (as root) to create the database.
Please edit /etc/updatedb.conf to enable the daily cron job.

この場合は手動でlocateデータベースを更新する必要があります。

Linuxでのlocate databaseの更新は、次のコマンドです。

# updatedb 

FreeBSDの場合は、次のコマンドです。

# /usr/libexec/locate.updatedb

root権限で実行すると、次のような警告が出ます。
これはすべてのファイルがlocateの検索対象となってしまうため、『root権限以外のユーザにもすべてのファイルの検索がされてしまうため危険です。』という警告です。

>>> WARNING
>>> Executing updatedb as root. This WILL reveal all filenames
>>> on your machine to all login user, which is a security risk.

設定ファイル

updatedbの設定ファイルは/etc/updatedb.confです。

Vine Linuxでは次のように記述されていて、1日1回 自動で更新されます。

DAILY_UPDATE=no

Red Hat系(CentOS/Fedora)ではdaily cronに設定されています。

/etc/cron.daily/slocate.cron

スポンサーリンク

関連記事

スポンサーリンク

Facebox

ホームページ製作・web系アプリ系の製作案件募集中です。

上に戻る