Yorumunuza göre cevap olarak ekleme.
Çözüm lookupcache=none
nfs bağlama seçeneklerinize eklemektir .
Ne olur istemciniz dosyayı ilk okuduğunda NFS dosya kimliği almak için bir NFS araması yapar. Daha sonra NFS dosya kimliğini önbelleğe alır ve dosyayı açmak için geri döndüğünüzde önbelleği kullanır. Normalde bu dosya güncelleştirildiğinde dosya kimliği aynı kalır gibi bir sorun değildir. Ancak bazı nedenlerden dolayı eski dosya kaldırılır ve yeni bir dosya oluşturulur (veya yeniden adlandırılır veya aynı dosya olmayan bir yere).
Şimdi normalde bu bir sorun ya istemciniz orada olmayan bir fileid açmaya çalıştığında olduğu gibi, sunucudan bir hata alır ve yeni dosya kimliği almak için başka bir arama yapar. Ancak bir nedenden dolayı NFS sunucusu istemcinin bu eski dosya kimliğini açmasına izin veriyor. Belki başka bir istemci dosyayı açık ve bu yüzden henüz silinmemesi, bilmiyorum.
Her durumda bunu çözmenin yolu, istemciye nfs mount seçeneğini kullanarak bir dosyayı açmadan önce her zaman bir nfslookup yapmasını söylemektir lookupcache=none
. Bunun dezavantajı, NFS sunucusuna daha fazla trafik eklediği için sık sık dosyaları açıyorsanız pahalı olabilmesidir.
ls -i
Dosyayı sunucuda düzenlemeden önce istemcide yapın, sonra tekrar. Sayıların değişip değişmediğine bakın. Bunu yaparsa, sunucu dosyayı değiştiriyor ve istemci dizini yeniden tarana kadar bunu fark etmez. Öyleyse bağlama seçeneğini ayarlamayı deneyinlookupcache=none
ve davranışın değişip değişmediğine bakın.