Fedora10を使っているとやたらとマシンが忙しくなるのだが、それはupdatedbが動いているためだった。これはlocateプログラムがつかうデータベースを作るもので、locateプログラムとはファイル名の検索に用いられる。そのためファイルを全部走査してデータベースを常に更新する必要がある。
まずupdatedbがどのように実行されるのか調べてみる。
# which updatedb
/usr/bin/updatedb
# rpm -qf /usr/bin/updatedb
mlocate-0.21.1-1.i386
# rpm -ql mlocate
/etc/cron.daily/mlocate.cron
/etc/updatedb.conf
....
#
/etc/cron.daily/mlocate.cronがあるので、anacronから起動されることがわかる。だが/etc/updatedb.confでも設定できるかもしれないのでこっちを見てみよう。
このファイルは「変数=値」の形式で記述してupdatedbの動作を制御するもののようだ。しかしここでの設定はスキャンする対象を限定するためのもののようなので今は関係ない。
よってanacronの設定を変えるのだが、まずanacronとは何かを調べておこう。anacronはつけっぱなしじゃないマシンで自動実行するためのもののようで、cronよりも簡単に設定できるやつみたいだ。
/etc/cron.daily/に置いたファイルは1日毎に実行されるようだ。そしてcron場合は指定時間にマシンが起動していない場合は無視されるが、anacronの場合は一日に一回は起動するっていう意味になるのだと思う。
そこで今回は、/etc/cron.daily/mlocate.cronを/etc/cron.weeklyに置くことで対応しようと思う。
# mv /etc/cron.daily/mlocate.cron /etc/cron.weekly/