問題タブ [inotify]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
3 に答える
31694 参照

linux - Linux でファイル システムの変更を監視する最良の方法

ファイル システムのアクティビティを監視するファイル システム同期ユーティリティの構築を検討していますが、Linux カーネルのファイル システム監視機能の一部が廃止されているか、十分に機能していないようです。

私の研究でわかったこと

dnotify は通知で最初に登場しましたが、削除、変更、アクセス、属性、作成、移動を通知する機能があり、ファイル記述子を決定できますが、現在は inotify と fanotify によって時代遅れになっています

inotify は通知で 2 番目に出てきましたが、アクセス、変更、属性、閉じる、移動、削除、作成などを通知する機能がありますが、ファイル記述子やプロセスは提供されず、fanotify によって古くなります。

fanotify は、アクセス、変更、クローズを通知する最新のものですが、削除または属性は通知しませんが、ファイル記述子を提供します

すべてを同期するために、プロセス (たとえば fd から) と削除、変更、属性などを決定する方法が必要ですが、何か提案はありますか? 残念ながら dnotify が最良のようですが、最も時代遅れです

0 投票する
3 に答える
5631 参照

linux - ファイルの変更を自動的に検出し、S3 経由で同期する

Linux システムにメディア ファイルのローカル ディレクトリがあり、s3sync スクリプトを使用して Amazon S3 アカウントと同期しています。現在、メディア ファイルが変更されていることがわかっている場合は、手動で s3sync スクリプトを実行しています。

ファイルが変更されたときにスクリプトを自動的に実行するにはどうすればよいですか?

数分ごとにスクリプトを実行する cron ジョブを作成することを考えていましたが、それは処理量が多すぎるように思えます。変更がなくても、スクリプトはディレクトリ構造全体をスキャンする必要があり、非常に大きいからです。

特定のファイルまたはディレクトリが変更されたときにコマンドを実行できるincron/inotifyも検討しましたが、これらのツールは、ネストされたディレクトリ全体への変更の監視を自動的にサポートしていないようです。間違っている場合は訂正してください。ただし、incron/inotify は、明示的に監視するように指示されたファイルのみを監視できるようです。たとえば、ディレクトリ内の任意のレベルですべてのファイルの変更を監視したい場合、ディレクトリとファイルの追加/削除を監視する別のスクリプトを記述して、incron によって監視されるファイルとディレクトリのリストを更新する必要があります。

より効率的なソリューションはありますか?

0 投票する
2 に答える
1799 参照

perl - inotify がイベントを失うのはなぜですか?

Perl とLinux::Inotify2を使用して、大量 (~100 秒) の syslog メッセージを処理する必要があります。

ログ メッセージを継続的に生成するテスト スクリプトを作成しました。イベントを処理するために、私の Perl スクリプトは次のようになります。

処理をシミュレートするために usleep 関数のコメントを外すと、ログ生成スクリプトを停止すると、inotify スクリプトが追いつかないことに気付きます。つまり、inotify Perl スクリプトはイベントを失っています。

オーバーフロー メッセージも表示されません。

処理が遅くても、メッセージを失わないようにするにはどうすればよいですか。つまり、メッセージを一時的に保存できる「バッファ」を定義するにはどうすればよいでしょうか。

0 投票する
1 に答える
2103 参照

python - ディレクトリを監視するための pyinotify インスタンスの実装に関する質問

pyinotify に関するいくつかの基本的な質問がありますが、他の場所では答えが見つからないようです。

1) 継続的なディレクトリ モニター (およびイベント プロセッサ) の場合、while( True ) ループが必要ですか、それとも通知ウォッチによって処理され、ウォッチを削除すると終了する継続的なイベント「ループ」ですか?

2) inotify インスタンスが「オン」になっているときにファイルが既に存在しているとどうなりますか? 最初は IN_CREATE を監視したいだけですが、これは既存のファイルを処理しません。

3) #2 と同様に、イベント プロセッサ機能の実行中にファイルが作成された場合はどうなりますか? pyinotify はそれをそのキューにキャッシュし、「ループ」が再び開始されたときに処理しますか、それともこのイベントを失いますか?

0 投票する
1 に答える
1069 参照

python - 外部で作成されたファイルからのpythonpyinotifyイベント

マウントされたネットワークドライブ(CIFSでマウントされている)でIN_WRITE_CLOSEイベントを監視しているpyinotifyインスタンスがあります。これは、サーバー自体がファイルをこのディレクトリに配置した場合に、システムで作成されたイベント(sudo cp、sudo mvなど)を問題なく取得します。

ただし、このネットワークドライブ上で別のサーバーとプログラムによって作成されたファイルのイベントを取得したいと思います。

何らかの理由で、私のinotifyインスタンスはこれらのイベントを認識していません...これは正常な動作ですか、それともコードに何か問題がある可能性がありますか?これが正常な動作である場合、それを回避する方法はありますか、またはこれらのイベントを収集するためにinotify以外の別の監視ツールを見つける必要がありますか?

アップデート

@Cedricの回答によると、マウントポイントをNFSに変更しましたが、それでもイベントが発生しません。

0 投票する
9 に答える
78213 参照

linux - Linuxでの変更について完全なディレクトリツリーを監視するにはどうすればよいですか?

Linux(ext3ファイルシステム)の変更についてディレクトリツリー全体を監視するにはどうすればよいですか?

現在、ディレクトリには、3つのディレクトリレベルで編成された約3,000のサブディレクトリに約50万のファイルが含まれています。

それらはほとんどが小さなファイルです(<1kb、いくつかは最大100kb)。これは一種のキューであり、ファイルが作成、削除、またはその内容が変更されてから5〜10秒以内にいつ行われるかを知る必要があります。

inotifyと並べ替えがあることは知っていますが、AFAIKは単一のディレクトリのみを監視します。つまり、私の場合は3,000個のinotifyハンドルが必要になります。これは、単一のプロセスで許可される通常の1024個のハンドルよりも多くなります。それとも私は間違っていますか?

Linuxシステムが必要なものを教えてくれない場合:ファイルシステムをシミュレートし(実際のファイルシステムですべてのファイルアクセスを複製する)、すべての変更を個別にログに記録するFUSEプロジェクトがありますか(うまくいきませんでした)?

0 投票する
2 に答える
470 参照

inotify - inotifytools のバグ

ディレクトリを再帰的に監視するために inotifytools を使用しています。次のコマンドを使用すると

inotifywait ./test -m

コマンドの後、 の下にディレクターを作成すると./test./test/test2. 次にtest2、たとえばファイルを削除したり、ファイルを追加したりすると、イベントが発生しなかったのは非常に奇妙です。

に時計がないようtest2です。

それはバグですか、それとも間違った方法で使用しているだけですか?

0 投票する
0 に答える
723 参照

c++ - inotify でスレッドを作成する方法 - しなければなりませんか?

フォルダーを監視する次のコードがあります。

フォルダーを監視しています。このフォルダーが継続的にアクセスされる場合、スレッドを作成する必要がありますか? また、このコードで継続的に実行されるプロセスを作成するにはどうすればよいですか? ファイルを実行しているプロセスで実行されていることを確認したいと思います(cpu-コマンドライントップ)。

助けが要る。感謝!!

コードは次のとおりです。

私のコードを修正して投稿していただけますか。

0 投票する
1 に答える
828 参照

python - pyinotifyを使用してディレクトリにスプールを作成する最良の方法は何ですか?

作成時にディレクトリ内のすべてのファイルを別のファイルに移動しようとしています。デーモン(実行中のpyinotifyインスタンス)をきれいに停止でき、元のファイルが引き続きorig/spoolディレクトリに作成される可能性があります。

デーモンの再起動後に処理したい。たぶん私はinotifyカーネルキューを利用できますか?

前もって感謝します

0 投票する
1 に答える
712 参照

c++ - inotifyに反応してイベントを出力するプログラム

私はUbuntuで働いています。フォルダを監視し、サブフォルダにポップアップするすべてのイベントを印刷したい(印刷ファイル)。次のコードがありますが、機能しません。実行されると、イベントのprintlnはありません。

2番目のコードでは、フォルダーからのイベントのみが表示されます。各サブフォルダーからのイベントはポップアップしません。

このコードは、監視しているフォルダーからのイベントのみを出力します。各サブフォルダーからのイベントは出力されません。自分のニーズに合わせて改善する方法がわかりません。