問題タブ [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 投票する
1 に答える
2061 参照

inotify - inotify inotify_event イベント -> 名前が空です

一部のファイルの変更を監視するために inotify を使用しています。問題は、inotify_event event->name が空であるため、どのファイルが変更されたか分からないことです

event->name が空なのはなぜですか?

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

callback - 大きなディレクトリの inotifywait

inotifywait man の変更では、次のように述べられています

-r, --recursive 引数として渡されたディレクトリのすべてのサブディレクトリを監視します。監視は、無制限の深さまで再帰的に設定されます。シンボリック リンクはトラバースされません。新しく作成されたサブディレクトリも監視されます。

警告: 大きなツリーのルート ディレクトリを監視しているときにこのオプションを使用すると、すべての inotify 監視が確立されるまでにかなりの時間がかかる場合があり、その間はイベントを受信できません。また、サブディレクトリごとに 1 つの inotify ウォッチが確立されるため、ユーザーごとの inotify ウォッチの最大数に達する可能性があります。デフォルトの最大値は 8192 です。/proc/sys/fs/inotify/max_user_watches に書き込むことで増やすことができます。

これは、 が呼び出されるたびにinotifywait、大きなディレクトリでは遅延が発生することを意味します。したがって、監視機能を使用して大きなディレクトリを常に監視するようにします。

そのようにディレクトリを手動でループするよりも効率的です(manページの例から)

while ループを繰り返すたびに、inotifywait を再度設定する必要があります。しかし、最初のオプションでは、リターンに基づいて実行できません。理想的には、私が欲しいのはそのようなコールバック関数です

socallback.shは毎回呼び出され、 の戻り値が返されますinotifywait。これをどのように実装しますか?

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

linux - inotify --fromfile ディレクティブ

xfceウィンドウマネージャーを備えたシステムfedora 15があります。

遊ぶためにinotify utilをインストールしました。

作業中に自分のファイルがどうなるかを制御したい。今日、inotifyを実行するために使用するコマンドがあります

そのコマンドは、読み取りおよび無視するフォルダーとファイルのリストを簡単に読み取ります。私のリストがあります (list.inotify)

したがって、ホーム フォルダーを読み取り、Torrents フォルダーと .pulse-cookie ファイルを無視する必要があります。

トレントも無視します。ただし、.pulse-cookie ファイルは無視されません。

これに対する解決策はありますか?(パターンベースの無視を使用するソリューションを投稿しないでください。絶対パスのファイルリストを操作したいです)

0 投票する
5 に答える
16768 参照

linux - Linux での CIFS マウントのファイル作成通知の取得

ubuntu サーバーに CIFS 経由でマウントされた Windows 共有があります。新しいファイルが Windows 共有に追加されたことを知る方法が必要です。私はこのinotifyプログラムを試しました:

http://www.thegeekstuff.com/2010/04/inotify-c-program-example/

標準のディレクトリでは問題なく動作しますが、CIFS の変更をキャッチできません。inotify を使用したいのですが、必ずしも使用する必要はありませんが、ファイル作成通知を取得する方法についての提案は素晴らしいでしょう。

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

bash - 新しいファイルのフォルダを監視する小さなスクリプトで、スクリプトが間違ったファイルを見つけているようです

.binこのスクリプトを使用して、作成中の新しいファイルのダウンロード フォルダーを監視しています。ただし、機能していないようです。grep を削除すると、ダウンロード フォルダーに作成されたファイルをコピーできますが、grep では機能しません。問題は、2 つの値を比較しようとしている方法にあると思われますが、どうすればよいかわかりません。

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

ruby - solaris に rb-inotify をインストールする

Solaris ボックスに rb-inotify をインストールしようとしています。uname -aの結果:

ruby-1.8.7 および ruby​​gems-1.7.2 はコンパイルおよびインストールされていますが、実行後

次のエラー メッセージが表示されました。

その後、rb-notify のホームページで、 Linuxカーネル サブシステム inotifyのラッパーであることがわかりました。それが、Solaris ボックスにインストールできない理由ですか?

しかし、人々が rb-notify を Windows マシンに問題なくインストールしていることは知っていますが、inotifyが「Linuxカーネル サブシステム」である場合、どのように機能するのでしょうか?

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

perl - バックグラウンドで実行されている単一の perl スクリプトは、Log4Perl の複数のインスタンスを保持できますか?

バックグラウンドで実行され、Log4Perl を使用して自己ログ記録するスクリプト「server.pl」があります。

このスクリプトは、ディレクトリを継続的に読み取り、Linux::Inotify2 モジュールで作成された新しいファイルを検出します。

検出された各ファイルは、実行されるパイプラインであり、独自のログファイルに書き込む必要がある Storable オブジェクトです。私の問題は、パイプラインのロガーを初期化するために Log4Perl::init を呼び出すと、新しい初期化によって以前の初期化が上書きされたため、server.pl 自体がログに記録されなくなることです。問題は、「server.pl」スクリプトに Log4Perl の複数のインスタンス (事前に未定義の数) を保持させるにはどうすればよいかということです。

以下は、'server.pl' の切り詰められたバージョンです (退屈なものはありません)。

編集:グローバルに、これは、スクリプトレベルでのみ定義されたロガーではなく、各インスタンスに応じてロガーが必要になることを意味します。何か案は ?ありがとう

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

linux - Linuxで作成されたファイルをinotifyで自動的に削除する方法は?

作成したファイルをinotifyで削除しようとしていますが、機能しません。

/ testにファイルを作成すると、次のようになります。

そのため、$ FILE変数がrmコマンドに渡されていないようです...これを正しく行うにはどうすればよいですか?ありがとう。

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

caching - rSyslogキャッシングでiNotifyを効果的に使用するには?

デフォルトでは、パフォーマンス上の理由から、rsyslog はデータをログ ファイルにすぐには同期しません。セクション出力ファイルの同期を参照してください

これは、syslog ファイルで iNotify を使用している場合、イベントを見逃す可能性があるということですか?

これまでのところ、tail -f を使用してファイルを監視しており、すべてのイベントをキャッチしているようです。しかし、syslog キャッシングが inotify イベントの見逃しにつながる可能性があることを私は疑っています。

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

c - inotifyはIN_DELETEに反応しません

私には次の(粗い)関数があります。この関数は、ディレクトリで新しいファイルや削除されているファイルを継続的に監視し、そのような変更を記録します。すべての新しいファイルとディレクトリを正しく記録しますが、削除されたファイルやディレクトリにはまったく反応しないようです。

これread()は、ファイルが作成されている場合は返されますが、ファイルが削除されている場合は返されない呼び出しのようです。

関数は2つの独立したスレッドの1つとして呼び出されていますが、現在、もう1つのスレッドは何もしません(プレースホルダーとしての空の無限ループのみ)。