多個inotify事件我有2臺機器在我們的數據中心:NFS服務器收到新的文件
公共服務器暴露了內部服務器的存儲通過ftp的一部分。當文件上傳到FTP時,這些文件實際上會在內部存儲器上結束。但是當在內部服務器的存儲器上觀看inotify事件時,我注意到文件被分塊寫入,可能是由於客戶端的緩衝。內部服務器上的軟件監視inotify事件,以確定是否有新文件到達。但由於使用NFS編寫文件的方式,因此沒有辦法確定文件何時完成。是否有辦法告訴NFS客戶端只能在一個操作中寫入文件,或者是否有解決此問題的方法?
編輯:
我得到的內部服務器上的活動,上傳大約900 MB的文件時是:
./ CREATE big_buck_bunny_1080p_surround.avi
# after the CREATE i get around 250K MODIFY and CLOSE_WRITE,CLOSE events:
./ MODIFY big_buck_bunny_1080p_surround.avi
./ CLOSE_WRITE,CLOSE big_buck_bunny_1080p_surround.avi
# when the upload finishes i get a CLOSE_NOWRITE,CLOSE
./ CLOSE_NOWRITE,CLOSE big_buck_bunny_1080p_surround.avi
當然
,我可以聽CLOSE_NOWRITE事件,但閱讀inotify文檔說:
close_nowrite
A watched file or a file within a watched directory was closed, after being opened in read-only mode.
這與'文件完整'不完全相同。我看到的唯一解決方法是使用.part或.filepart文件,並將它們(一旦上傳)移動到原始文件名並忽略存儲監視器中的.part文件。缺點是我必須向客戶解釋這一點,如何使用.part進行上傳。很多ftp客戶端默認支持這個功能。
我在我的原始問題中添加了事件,這表明這不起作用。 – dvrslype
我只能看到** 1 **'IN_CLOSE_WRITE'事件。 (如預期)。你用*表示什麼意思不起作用*? – hek2mgl
,因爲您可能沒有閱讀評論,它說我收到約250,000 MODIFY和CLOSE_WRITE事件。 – dvrslype