GNU/Linux >> Linux の 問題 >  >> Linux

Inotifyを使用してファイルへのアクセスを監視しますか?

トリガーが欲しいのですが、特定のファイルが何らかのプロセスによってアクセスされたときに通知を受け取りたいです(つまり、スクリプトを実行する必要があります)。私が正しく理解していれば、これはinotifyで達成できます 。

ファイル/foo/bar.txtがある場合 inotifyを設定するにはどうすればよいですか そのファイルを監視するには?

カーネル3.12でDebianWheezyを使用しています(私のカーネルはinotifyをサポートしています)

承認された回答:

スーパーユーザーのGillesによると:

シンプルで、inotifywaitを使用します(ディストリビューションのinotify-toolsをインストールします パッケージ):

while inotifywait -e close_write myfile.py; do ./myfile.py; done

これには大きな制限があります。一部のプログラムがmyfile.pyを置き換える場合 既存のmyfileに書き込むのではなく、別のファイルを使用します 、inotifywait 死んでしまいます。ほとんどの編集者はそのように機能します。

この制限を克服するには、inotifywaitを使用します ディレクトリ上:

while true; do
  change=$(inotifywait -e close_write,moved_to,create .)
  change=${change#./ * }
  if [ "$change" = "myfile.py" ]; then ./myfile.py; fi
done

Linux
  1. systemdを使用してスタートアップを管理する

  2. Linuxファイルアクセスモニタリング?

  3. UnicodeテキストでUniqを使用していますか?

  1. Linux でファイル アクセスを監査する方法

  2. C で tmpfile() を使用する場合の一時ファイルの場所

  3. パイプを使用してvimでファイルを開く方法

  1. Linux でのファイル変更時にプロセスを再起動する

  2. inotify-tools を使用して、複数のディレクトリ内で再帰的に新しいファイルを継続的に検出します

  3. rm を使わずにファイルを削除するには?