Tips記事
» 2000年11月01日 00時00分 UPDATE

午前4時に突然ディスクアクセスが起こる

[木田佳克,ITmedia]

 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.

注目のテーマ