Red Hatを始めとする多くのディストリビューションでは,「locate」コマンドですばやくファイル検索ができるように毎日午前4時にファイルデータベースが更新される。この設定は次の個所にある。
# cat /etc/crontab SHELL=/bin/bash PATH=/sbin:/bin:/usr/sbin:/usr/bin MAILTO= HOME=/ # run-parts 01 * * * * root run-parts /etc/cron.hourly 04 0 * * * root run-parts /etc/cron.daily 04 0 * * 0 root run-parts /etc/cron.weekly 06 0 1 * * root run-parts /etc/cron.monthly ※crontabファイルを見ると分かるが,上記黄色文字の行が1日1回4時に実行される設定個所だ。 # ls /etc/cron.daily/ 00-logwatch logrotate rpm tetex.cron 0anacron makewhatis.cron slocate.cron tmpwatch ※次に,/etc/cron.daily/ディレクトリ下を見ればさらに状況が分かってくる。黄色文字のスクリプトを覗いてみよう。 # cat /etc/cron.daily/slocate.cron #!/bin/sh renice +19 -p $$ >/dev/null 2>&1 /usr/bin/updatedb -f "nfs,smbfs,ncpfs,proc,devpts" -e "/tmp,/var/tmp,/usr/tmp,/afs,/net" ※updatedbというコマンドが見られる。これが動作すると,標準設定でディスク内のファイルをスキャンされ,データベース化するのだ。 |
常時電源をオンにしている場合は定期的に更新されるが,朝方に電源がオンになっていない場合は実行されない。手動でデータベース更新を行いたい場合には,次のような手順が必要だ。
※locateの実行例 # locate smb.conf /etc/samba/smb.conf /usr/share/man/smb.conf.5.gz ※手動でデータベース更新をするには次のようにコマンド実行すればよい。ただし,特定のディレクトリ下を排除するためには,上記スクリプト内の行をそのまま実行してもよいだろう。 # uptdatedb & |
Copyright © ITmedia, Inc. All Rights Reserved.