題 同步而不檢查每個文件


我需要在Windows XP和Unix服務器之間經常同步兩個大目錄(包含大量子目錄和文件)。 (我目前正在做的很好 WinSCP賦予,但嘗試過其他一些。)

我的問題是每次同步時,軟件都會檢查每個文件以查看它是否已更新。大約需要1分鐘。

我夢想有一個軟件可以跟踪哪個目錄更新的系統,除非需要,否則不會訪問目錄。

由於我通常只更改幾個文件,因此應該將我的同步時間從1分鐘加速到最多1秒。

有沒有這樣做的軟件,免費或不免費?

一種解決方案是將兩個系統同步到一些遠程的東西,如DropBox。我不想這樣做有很多原因。它減慢了一切,它的成本,而且我不需要我的文件在任何其他地方。

謝謝。


5
2018-02-19 17:38


起源


我也希望聽到一些解決方案。現在我已經通過cygwin設置了rsync,但多年來文件夾已包含數百萬個小型JPG,完成同步大約需要24小時 - 即使只是在添加新的JPG時 - 因為用於驗證現有JPG的所有時間都沒有改變。 - Uninspired
所以你的問題不是它檢查每個文件,而是實際需要多長時間? - Daniel Beck♦
為什麼它不存儲文件的哈希值然後檢查哈希值是否已經改變,它應該更快。 - Jonathan.


答案:


這是一個單向傳輸(即將Windows XP端的新文件和已更改的文件備份到Unix服務器,Unix端沒有任何改變)?這可能會使查找解決方案變得更加容易。

為了避免掃描所有現有的未更改文件,您需要檢查更改列表的內容。在XP上,有NTFS Change Journal。 Unix / Linux系統具有inotify和日誌文件系統。但是找到一個同時兼具軟件的軟件可能很困難。這就是為什麼我希望這是一個單向增量鏡像,而不是真正的“同步”。

哦......我應該提到另一種方法是使用文件系統(過濾器)驅動程序。在Linux上,“融合”框架使這相當簡單,但這種方法使用較少,因為它比處理日誌要復雜得多。


0
2018-02-19 20:11



這是一個真正的同步。我從unix端編輯文件(我實際上通過Windows文件夾通過本地網絡連接到這些文件)並從Windows遠程編輯。謝謝你的意見。從概念上講,這當然是一項非常簡單的任務,我總是驚訝於實施這些事情是多麼困難;-) - Emanuele Viola
@Emanuele:就像我說的那樣,Windows和Unix都有信息,這是找到在兩個平台上都經過優化的軟件的問題。但是現在您在查找程序/閱讀功能列表時會使用一些關鍵字。 - Ben Voigt
@Ben:由於我不管理unix服務器,我想知道:信息是否應該在標準服務器上(而不是要求安裝/修改文件系統),是否可以訪問?如果是這樣,你認為編寫這樣的應用程序會很複雜嗎?我想很多人都會從中受益。順便說一句:我感謝你的指示,如果事實證明沒有別的,我會接受你的回答。 - Emanuele Viola
@Emanuele:默認情況下,一些最常見的文件系統會執行日記功能,但有幾個文件系統不執行日記功能,因此您必須從提供程序中找出文件系統的內容。並且從非特權帳戶中讀取物理分區的文件系統日誌可能是不可能的。 OTOH inotify應該可以在用戶空間中正常工作(只需確保你的觀察者總是在後台運行,不像日誌,inotify不告訴你在你看的時候發生了什麼),或者是在環回上安裝的文件系統(而不是分區)將為您提供對日誌數據的完全讀取權限。 - Ben Voigt
如果您能提供有關您的方法的更多詳細信息,我會很高興:是否有一個閱讀這些日誌文件的好地方,它們存儲在哪裡,我該如何解析它們?如果它不是真正的同步,你知道一個應用程序嗎?另外,您會用什麼語言編寫這樣的應用程序? - Emanuele Viola