locateとupdatedb

 
 

ファイル一覧データベースの更新

 

ファイル一覧データベースはupdatedbコマンドの実行で更新されます。

ファイル一覧を取得するので、更新量が多ければそれなりに実行時間はかかります。

ファイル一覧データベースの更新頻度はどうでしょうか。

更新コマンドはここにありました。

./cron.daily/mlocate

mlocateファイルの最後の行に/usr/bin/updatedb -f "$nodevs"があります。

-fオプションは除外するです。

つまり、指定したファイル名を除外してファイル一覧データベースを更新するということです。

$nodevsは上記の2行目に/proc/filesystemの1つ目の値がnodevでありかつ、2つ目の値がrootfsでない値になります。

/proc/filesystemはカーネルがサポートしているファイルシステムの一覧になります。

ちょっとわかりづらいですね、/procはカーネルの様々な設定やハード制御のファイルなどが置かれています。

そういったシステムに大事なファイルシステムの一覧がlocateコマンドでパスやらが見えてしまうと危険なので、除外されているように思えます。

実際に実行してみましょう。

この時に一緒にI/O負荷も計測したいので、dstatコマンドで計測していきます。

まずはファイルを作成します。
touch locate_test

次にlocateで検索します。

mlocate.dbファイルが最新になっていないため、表示されません。

さて、ここからが本番です。

updatedbコマンドを使用してmlocate.dbを更新していきます。

実行前

nohupを使ってdstatコマンドを仕掛けます。

updatedb実行です!今回はオプションなしで実行していきます。
updatedb

ん?んん?

ものの数秒で終わってしまいました。
日次で実行されている上に、特に何かファイルを大量に作ったり等はしていないので、早く終わりましたね。

psで確認

プロセスもないので、完全に終わったようです。

ファイル一覧データベースの更新日付は?

先ほど作成したlocate_testファイルがファイル一覧データベースに入っているか確認します。

ちゃんと更新されてますね。

updatedb実行中のリソース状況はどうでしょうか。

実行時間中のdstatです。

22:57:06〜22:57:10の間でCPUに動きがあります。

systemやwaitの消費が多いので、この辺りが間違いなさそうです。

少ない量だからこれだけで済んでいるかもしれません。

locateインストール直後のupdatedbのタイミングはちょっと考えた方が良さそうです。

 

最後はupdatedbコマンドの頻度と時間になります。

 
 

ブログランキングに参加しています。クリックして応援していただけると嬉しいです。

人気ブログランキング
ブログランキング・にほんブログ村へ
にほんブログ村