~10,000 のサブフォルダーを含むフォルダーがあります。
Linux API またはツールは、/SharedRoot などの下の任意のフォルダーの変更を監視できますか、またはフォルダーごとに inotify をセットアップする必要がありますか? (つまり、10k以上のフォルダーに対してこれを実行したい場合、私は負けます)。私はこの非効率的な方法の例をすでに見たことがあるので、そうだと思います。
私の問題:
最近アクティブな「プロジェクト」を一番上にして、フォルダを時系列で並べ替える必要があります。
ファイルが変更されると、そのファイルの上の各フォルダーは、ファイルと一致するように最終変更のタイムスタンプを更新する必要があります。遅延は大丈夫です。ファイル (通常は MS Excel) を開き、再度閉じると、ファイルの日付が上下することがあります。このため、ファイルが閉じられるまで待ってから、そのファイルのフォルダーをチェックのためにキューに入れ、しばらくしてから、そのフォルダー内の最新のファイルを探しに行きます。 Excel または同様のプログラムによって、元のタイムスタンプにすでにさかのぼることができます。また、同じフォルダーの複数のファイルが使用/作成された場合、そのフォルダーの親のタイムスタンプをバッファリングして、少なくとも 1 つの遅延更新に折りたたまれた一連の更新を取得することは理にかなっています。
Linux ソリューションを探しています。Windows サーバーで実行できるコードがいくつかあります。キューイング機能のほとんどはここにあります: http://github.com/sesam/FolderdateFollowsFiles/blob/master/FolderdateFollowsFiles/Follower.vb
利用可能な API:s
Windows の inotify に関連するものである ReadDirectoryChangesW は、フォルダーとそのサブツリー全体を監視できます。http://msdn.microsoft.com/en-us/library/aa365465(VS.85).aspxの bWatchSubtree を参照してください。
サンバ?
samba ソースにパッチを適用する可能性はありますが、おそらく既に利用可能なフックがあるのでしょうか? クライアント側 (さまざまな Windows バージョン) や、フォルダーを再帰的に更新するためのファイル アクティビティのスパイなど、他の可能性はありますか?