ファイルが完了した後にのみnfsv3でファイルを処理する方法は?

ファイルが完了した後にのみnfsv3でファイルを処理する方法は?

別のシステムでファイル(特定のサイズ)を書き込むNFSマウントがあり、新しいファイルをポーリングしています。スクリプトを使用してファイルを処理するには、ファイルが完全に完了するまで待つ必要があります。私はこれらのファイルや名前を書くプロセスを制御しません。

fusionrとlsofが私のローカルシステムを調べているようですが、他のシステムがNFSマウントに書き込んだ場合、それは正しく処理されません。 v3の場合、ファイルイベントを聞くことができるとは思わず(しかしv4も聞くことができますか?)、ファイルサイズが大きくならなくなるまでしばらく待つ必要はありません(そしてネットワークが拡張されないことを祈ります)。間違っています)、そうする方法があるかどうかわかりません。ローカルでファイルハンドルを見つけるのと同じように、整合性が保証されます。解決策はありますか?そうでなければ、NFSv4のソリューションはありますか?

ベストアンサー1

nfsv3はステートレスであるため、そのステータスを保証する方法はありません。ただし、NLM(Network Lockout Manager)が両側で実行されている必要があります。

nfsv4にはロック操作のオープン/読み取り/書き込み/ロック/クローズがあり、OPEN CLOSE状態を維持します。可能であれば、nfsv4に変更する必要があります。

http://nfs.sourceforge.net/#faq_a6

おすすめ記事