フォルダーの内容の変更を監視する


18

tail -fコマンドを使用してファイルのコンテンツの変更を監視できます

tail -fがファイルを監視する方法で、ディレクトリ構造の変更を監視する同様の方法はありますか?

ディレクトリの下の特定のパスにファイルを追加する長時間実行プロセスがあり、ディレクトリおよびサブディレクトリへの書き込みとしてファイル着信を追跡したい。

回答:


27

inotifyカーネルシステムは、何が必要です。

  1. インストールinotify-tools

    sudo apt-get install inotify-tools
    
  2. 時計を設定します。

    inotifywait /path/to/directory --recursive --monitor
    
  3. 座って出力を確認します。


からman inotifywait

-m, --monitor
   Instead of exiting  after  receiving  a  single  event,  execute
   indefinitely.   The default behaviour is to exit after the first
   event occurs.
-r, --recursive
   Watch all subdirectories of any directories passed as arguments.
   Watches will be set up recursively to an unlimited depth.   Sym‐
   bolic  links  are  not  traversed.  Newly created subdirectories
   will also be watched.

この--eventオプションを使用して、作成、変更などの特定のイベントを監視できます。


1
誰かがこの問題に遭遇した場合:視聴に失敗しました;; inotify時計の上限に達したblog.sorah.jp/2012/01/24/inotify-limitation
johan.i.zahri

1
私のサーバーの1つで、私はそれがもうinotify-waitジャストと呼ばれていないことを発見しましたinotifywait。ハイフンを削除するには、名前を変更する必要があります。
Jamesking56

@ Jamesking56ハイフンを編集しました。
ムル

注、inotifywaitのヘルプでは、ファイルパスの前にオプションが必要であると記載されています。
フェリックスDombek

8

--eventsフィルターではないため、を使用する必要があります--event。たとえば、作成/変更イベントを監視するためのコマンドラインは次のとおりです。

# inotifywait . --recursive --monitor --event CREATE --event MODIFY

それから私は見ます:

Setting up watches.  Beware: since -r was given, this may take a while!

フィードの形式は次のとおりです。

[path] [event] [file]

例えば

./.mozilla/firefox/b4ar08t6.default/ MODIFY cookies.sqlite-wal
./.mozilla/firefox/b4ar08t6.default/ MODIFY cookies.sqlite-wal
./.mozilla/firefox/b4ar08t6.default/ MODIFY cookies.sqlite-wal
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.