一部のファイルを一元化しようとしたときウェカファイルシステム一部の他のクライアントがすでにロックを保持しており、どのプロセス/ホストがロックを持っているかを確認できないため、失敗します。クライアントがwekaでファイルのロックを解除するように強制する方法は?
ベストアンサー1
通常、ネットワークファイルシステム(非NFS)のクライアントでファイルをロック解除する方法はなく、他のファイルシステムでも同様であると仮定します。一部のファイルシステムでは、以下を許可します。ロック解除サーバー側から。
クライアントでこれを達成する唯一の方法は、mv
そのファイルを使用し、名前と内容は同じですが、inodeが異なる新しいファイルを作成することです。
mv $FILE $FILE.locked; cp -p $FILE.locked $FILE
これにより、ロックされたファイルの名前が変更され、サフィックスが追加され、元の.locked
ファイル名にコピーされます。これで、元のファイルと同じ内容と属性を持つファイルが作成されますが、新しいinodeがあるためロックされません(.locked
ただし、ソースinodeを持つファイルはまだロックされたままです)。
しかし、意味を理解する必要があります。元のファイルのファイル記述子を保存し続けるプロセスがある場合(同じクライアントまたは別のクライアントで)、以前のファイルのファイル記述子をサフィックスとして保存します.locked
。同じ名前の新しいファイルではないため、新しいファイルで行われたすべての変更はこれらのプロセスに反映されません。その名前のファイルのみ処理後ろに/は新しいファイルを使用しますmv
。cp