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