inotify: 繰り返されるファイル変更ループの防止

inotify: 繰り返されるファイル変更ループの防止

私は特定のディレクトリの作成、変更、およびプロパティの変更を監視するために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

これには私のコードに多くの追加ロジックが必要でしたが、問題も解決しました。

おすすめ記事