私は特定のディレクトリの作成、変更、およびプロパティの変更を監視するためにUbuntu 18.4システムでinotify
(実装を通じて)を使用しています。pyinotify
私はIN_CREATE、IN_MOVED_TO、IN_MOVED_FROM、IN_MODIFY、およびIN_ATTRIB監視フラグを使用します。
inotify
ファイルに対するこれらの変更の1つが見つかった場合、私がすることの1つは、ファイルに対して作業を行うことです。chmod
時にはchown
。たとえば、これらの監視ファイルの1つの変更日が変更された場合(例えば、コマンドを介してtouch
)、またはファイルサイズが変更された場合は、chmod
ファイルに対してa、可能であればaを実行します。chown
ただし、IN_ATTRIBウォッチドッグフラグを使用すると、chmod
フラグchown
は別のIN_ATTRIB変更をトリガーしてコマンドを再実行し、結果としてIN_ATTRIBにファイルを認識し続け、同じ変更サイクルが発生します。
私はこのような状況を避けたい。これを行う1つの方法は、chmod
発行する前に権限と所有権を確認するか、chown
実際に変更が必要な場合はそのうちの1つだけを実行することです。しかし、ウォッチャーの変更を無視するinotify
方法があるかどうか疑問に思います。pyinotify
特定のファイルビューを一時的に無効にできることはわかっていますが、ファイルを再編集する必要がある場合に備えて、ある時点でビューを再度有効にする必要があります。
chmod
発行する前に権限と所有権を確認することに加えて、chown
私がやりたいことを行う他の方法はありますか?
よろしくお願いします。
答え1
何の回答も得られず、さらなる調査でinotify
ファイルやディレクトリへの変更を無視する方法についての情報がないことを考慮すると、コーディングロジックが不足しているため、これを行う方法がないと仮定します。私の監視ルーチンを実際に実行するには、資産または所有権が実際に現在の予想値と異なる場合を除きchmod
呼び出されません。chown
これには私のコードに多くの追加ロジックが必要でしたが、問題も解決しました。