2009-11-02 67 views
1

我正在編寫一個PHP進程,該進程將運行在需要監視遠程SMB服務器並檢測正在通過FTP上傳到該文件夾​​的新文件的Unix機器上。這很可能我就可以使用PHP檢測遠程SMB共享上的文件修改

這將需要檢測:

  1. 新文件被創建
  2. 文件上傳完成
  3. 文件被刪除

如果它是一個NFS共享,我會嘗試使用FAM來檢測事件,但是我看不到任何對等方法?

回答

1

聽起來不像我會用在生產中的東西。但你可以嘗試這樣的事:

  1. 安裝使用Samba SMB共享上 正在運行的PHP 守護
  2. 使用SPL RecursiveIteratorIterator與 DirectoryIterator收集和 維持所有的列表機共享驅動器
  3. 一次 一段時間上的文件和文件夾 刷新文件夾列表和 與當前狀態進行比較, 如果該文件不存在的y以下 你知道它已被刪除,如果 有一個新的文件,把它放在 隊列並標記爲「是 上傳」在接下來的「刷新運行」
  4. 檢查排隊的文件,它的文件大小 並沒有改變文件上傳 可能完成,如果文件大小 改變把它放在隊列再次 並將其標記爲「正在上傳」
+1

5.保持文件的哈希列表,這樣你就可以檢測文件何時更改。 – Marko 2009-11-02 11:04:17

+0

@Goran - 這幾乎是我想到的策略,但我真的很擔心它不會很好地擴展。 – 2009-11-02 14:19:21

+0

最終它取決於將存儲在該共享上的文件和文件夾的數量。 – 2009-11-02 21:33:23

相關問題