inotifywait
を使用して同様のことを行いました ツール:
#!/bin/bash
while true; do
inotifywait -e modify,create,delete -r /path/to/your/dir && \
<some command to execute when a file event is recorded>
done
これにより、ツリー全体に再帰的なディレクトリ ウォッチが設定され、何かが変更されたときにコマンドを実行できるようになります。変更を表示したいだけの場合は、 -m
を追加できます 監視モードにするためのフラグ
私の知る限り、再帰的に inotify
を設定する以外に方法はありません 各ディレクトリで監視してください。
とはいえ、inotify
であるため、ファイル記述子が不足することはありません。 ファイルまたはディレクトリを監視するために fd を予約する必要はありません (その前身である dnotify
、この制限に悩まされていました)。 inotify
代わりに「監視記述子」を使用します。
inotifywatch のドキュメントによると、デフォルトの制限は 8192 の監視記述子であり、新しい値を /proc/sys/fs/inotify/max_user_watches
に書き込むことで増やすことができます .
$ inotifywait -m -r /path/to/your/directory
このコマンドは、アクセス、オープン、作成、削除などのすべてのイベントについてディレクトリを再帰的に監視するのに十分です...