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