updatedb アップデートディービー

英語表記updatedb

日本語表記locateデータベース更新

正式名称updatedb

危険度注意

What does it mean?

locate系コマンドが参照するファイル名データベースを作成・更新します。検索速度を支える裏方ですが、実行権限や除外設定の理解が重要です。

Command Quest

updatedb を今日の道具にする

locate系コマンドが参照するファイル名データベースを作成...

$ updatedb [オプション]...
関連用語0
次のコマンド0
FAQ2
参照4

概要

locate系コマンドが参照するファイル名データベースを作成・更新します。検索速度を支える裏方ですが、実行権限や除外設定の理解が重要です。

基本構文

updatedb [オプション]...

詳細解説

updatedbは、locateが高速検索に使う索引を作成・更新するコマンドです。locateの結果が新しくない時、多くの場合はupdatedbの実行タイミングや除外設定が原因です。つまりupdatedbは、検索精度と鮮度を決める基盤です。

通常はcronやsystemd timerなどで定期実行されることが多く、手動で頻繁に叩く道具ではありません。しかし、大量の構成変更直後や検索結果の鮮度確認が必要な時には、仕組みを理解していると役立ちます。どこを索引対象にし、どこを除外するかで、速度、容量、秘匿性が変わります。

注意点は、環境差と権限です。実装により既定のデータベース場所や設定ファイル、除外項目が異なります。また、システム全体を索引化するには通常、十分な権限が必要です。検索の鮮度向上だけを目的に無造作に全体更新すると、負荷や情報露出の観点で問題になることがあります。

このコマンドを使う場面

locateの結果が古いと感じた時、独自の検索データベースを作りたい時、検索対象の除外設定を調整したい時に使います。通常は自動実行の仕組み確認が先です。

まず安全に試す方法

本番系全体を更新する前に、可能なら独自出力先で小さく試します。

1. mkdir -p /tmp/updatedb-demo
2. updatedb --output=/tmp/updatedb-demo/test.db --prunepaths='/proc /sys /dev'
3. ls -l /tmp/updatedb-demo/test.db

実装により利用可能なオプションが異なるため、--helpも合わせて確認してください。

3分ミッション

少しでも手を動かすと定着しやすくなります。終わった項目にチェックを入れてください。

  1. locateの結果が索引依存であることを確認し、updatedbの役割を整理します。

  2. 使っている実装の設定やヘルプを確認し、どの経路が除外されるか把握します。

資格試験との関連

  • LinuC レベル1
    範囲: 1.02.4 ファイルの配置と検索
    根拠: official
    updatedbは、ファイルの配置確認や検索に関わる学習項目です。
  • LPIC-1
    範囲: 104.7 システムファイルの検索と適切な配置
    根拠: official
    updatedbは、システム上のファイルやコマンドを見つける技能と関係します。
  • 共通基礎
    範囲: Linuxコマンド基礎
    根拠: editorial
    updatedbは、ファイル操作またはテキスト処理の基本を支えるため、試験横断の共通知識として価値があります。

オプション

  • --output ファイル
    作成するデータベースファイルを指定します。
    updatedb --output=/tmp/test.db
  • --prunepaths パス一覧
    索引対象から除外する経路を指定します。
    updatedb --prunepaths='/proc /sys /dev'
  • --require-visibility yes|no
    可視性の扱いを制御します。実装依存に注意してください。
    updatedb --require-visibility=yes

実行結果サンプル

  • updatedb
  • updatedb --output=/tmp/test.db

戻り値コード

  • 0 正常終了。データベース更新に成功しました。
  • >0 権限不足、設定不備、出力先問題、オプション不正などで失敗しました。

使用例

  • updatedb
  • updatedb --output=/tmp/test.db
  • updatedb --prunepaths='/proc /sys /dev'

よくあるエラー

  • locateが古い結果を返す
    原因: updatedbの実行頻度や除外設定が期待と合っていません。
    対処: 自動実行の設定とupdatedbの対象範囲を確認します。
  • 手動更新で権限エラーになる
    原因: システム全体の走査や既定出力先への書き込みに必要な権限がありません。
    対処: 必要な権限で実行するか、限定的な出力先と対象で試します。

導入・互換性情報

updatedbはfindutils版やmlocate系、plocate系で設定や既定が異なります。記事では『locate用データベースを更新する』役割を中心に説明し、細かな既定値は実装依存として分けて書くと安全です。

注意点 / セキュリティリスク

危険度は中程度です。システム全体を走査するため、負荷、秘匿情報、除外設定の不備に注意が必要です。通常運用では既定設定と自動実行の仕組みを理解したうえで扱います。

FAQ

  • Q. updatedbは毎回手動で実行すべきですか。
    A. 通常は不要です。多くの環境では定期実行の仕組みがあり、まずその設定を確認します。
  • Q. locateが速いのはなぜですか。
    A. updatedbが事前に作成した索引を検索しているためです。

参照リンク

関連記事