2009-01-27 59 views
4

我有一個使用FTP將文件寫入文件夾的系統。我需要複製這些文件,但只有當他們的FTP系統完成時。我如何知道第一個流程何時寫完?如何知道另一個進程何時停止在Perl中寫入文件?

+0

請看:[http://stackoverflow.com/questions/482839/validate-an-image-file-in-perl #483156](http://stackoverflow.com/questions/482839/validate-an-image-file-in-perl#483156) – dsm 2009-01-27 12:08:16

回答

11

另一種可能是將上傳文件的過程上傳到臨時名稱下,然後重命名它們。

重命名自動發生,所以不會有文件在其最終名稱下不完整的情況。

複製過程可能會忽略臨時命名文件。

+0

如果我對寫入源有任何控制權,這將是理想的解決方案。 – Xetius 2009-08-25 15:33:56

1

最簡單的方法是創建一個文件,指出完成的傳輸?

3

擴展zoul的想法:有一個文件指出上次更新目標的時間。每次上傳後,都會觸摸該文件。

另一方面的cron進程可以定期檢查更新並執行其工作。

0

你應該使用Linux::Inotify2,它是爲那種東西而設計的! :)

只是看 'IN_CLOSE' 事件上的FTP目錄...

+0

這將在常見情況下起作用,但如果上傳中止,超時或以其他方式失敗,它也會告訴您文件已完成。 – MarkR 2009-01-27 21:27:11

相關問題