locateのupdatedbを止める

/ .trash / Comment[1]
ほとんどのディストリにはlocateコマンドが入ってるんだけども、これが勝手にcronさんが毎日updatedbを実行しちゃうわけさ。
毎日毎日無駄にデータベースを更新してたらディスクを摩耗させてしまうことになる。
俺はファイルなど失くさぬ。万が一失くしたとしてもfindで条件を詳しく指定して検索するだけで事足りるわ。っていう人ならupdatedbを止めても問題ない。

cronのディレクトリ構造はこうなってる。
 /etc/cron.daily/
 /etc/cron.hourly/
 /etc/cron.monthly/
 /etc/cron.weekly/
/etc以下にcron.毎日、毎時、毎月、毎週というようにディレクトリ分けされており、その中にスクリプトを置いておくことで、ディレクトリに対応したタイミングでスクリプトが実行されるという仕組み。

updatedbのスクリプトを見てみよう
# cat /etc/cron.daily/mlocate
#! /bin/bash

set -e

[ -x /usr/bin/updatedb.mlocate ] || exit 0

if which on_ac_power >/dev/null 2>&1; then
ON_BATTERY=0
on_ac_power >/dev/null 2>&1 || ON_BATTERY=$?
if [ "$ON_BATTERY" -eq 1 ]; then
exit 0
fi
fi

##

LOCKFILE="/var/lib/mlocate/daily.lock"

trap "rm -f $LOCKFILE" EXIT

if [ -e "$LOCKFILE" ]; then
echo >&2 "Warning: $LOCKFILE present, not running updatedb."
exit 1
else
touch "$LOCKFILE"
fi

##

# See ionice(1)
if [ -x /usr/bin/ionice ] &&
/usr/bin/ionice -c3 true 2>/dev/null; then
IONICE="/usr/bin/ionice -c3"
fi

$IONICE /usr/bin/updatedb.mlocate
なるほど、AC時でディスクアクセス無しの時にupdatedbが実行されるようになってるね。

cronでupdatedbを実行させないようにするには、このスクリプトファイルを削除すればおK
# rm /etc/cron.daily/mlocate

コメント

管理人のみ閲覧できます

このコメントは管理人のみ閲覧できます

| | #

:
:
:
:
:
管理人のみ表示を許可