我有一個情況,我有一個文件可以說源系統中的TEST.csv。我想在我的系統中同步該文件。無論何時在TEST.csv中添加新的內容或更改了某些舊數據,目標系統中的文件也會發生更改。 源系統只暴露給rsync,所以我不能使用除rsync以外的任何其他協議。 現在我只想單獨獲取TEST.csv中已更改的部分。 我該怎麼辦?通過rsync找出文件的不同部分
0
A
回答
0
如果我理解正確,您只想傳輸TEST.csv
的變化部分而不是整個文件,是的? 如果是這樣,我認爲這是不可能的。這是直出的man rsync
:
The rsync remote-update protocol allows rsync to transfer just the differences between two sets of files across the network connection, using an efficient checksum-search algorithm described in the technical report that accompanies this package.
的關鍵部分是using an efficient checksum-search algorithm
- 它違背了本地和遠程文件的校驗,如果校驗和而不同,所以將文件從源傳輸到目標。根據校驗和,無法確定文件的哪一部分發生了變化,只傳送差異。
你可以做的是使用本地版本工具,例如, git
,並使用該工具獲取您的同步週期之間的差異。如果有差異,可以將其存儲在文件中,通過rsync傳輸,然後在目標端使用patch
實用程序將此差異應用於TEST.csv
。不需要
git
,您可以使用源上的簡單diff -u
和目標上的patch
,而是利用差異,你必須追蹤的舊TEST.csv
和新TEST.csv
有了新的變化,然後運行diff
反對。使用git
,你只需用你想要的任何工具編輯這個文件,然後git使用它的內部機制爲這些改變創建正確的diffset。只要不要忘記在傳輸差異後添加並提交更改,因此下一個週期可以僅通過自己的更改進行清理差異;-)
相關問題
- 1. rsync不同步.htaccess文件
- 2. 通過rsync自動同步
- 3. 通過rsync通過inotify識別錯誤的文件名
- 4. 如何通過名稱的一部分找到該文件
- 5. 通過文本文件循環部分
- 6. rsync不同步子文件夾?
- 7. 的Rsync通過的posix_spawn
- 8. 通過查找控件分配文本
- 9. rsync的通過ssh隧道
- 10. 查找過濾圖的連通部分
- 11. Rsync的文件
- 12. 通過很多進程讀取相同txt的不同部分
- 13. Rsync - 如何包含文件路徑的特定部分
- 14. ConfigParser在庫存文件的不同部分列出主機?
- 15. 通過ckeditor上傳不同的文件
- 16. Rsync - 不傳輸空文件
- 17. 類型不匹配,同時通過Excel的分類文件
- 18. 通過部分
- 19. 通過node.js部署到Heroku後找不到音頻文件
- 20. PHP通過scandir循環輸出不同的文件名
- 21. 通過用不同的顏色繪製它來突出圖的一部分
- 22. 通過僅搜索文本的一部分來查找標題?
- 23. 通過大部分找到的順序排列MY_SQL全文
- 24. 查找圖像中的不同部分
- 25. 輸出來查找文件與文件名部分
- 26. rsync部署和文件/目錄權限
- 27. 流浪Rsync的不同步
- 28. 在單獨的html文件的不同部分使用不同的Css文件
- 29. SASS部分通過HTTP而不是文件系統
- 30. Rsync的圖像的一部分序列
我的答案能夠幫助您嗎? – EmilioMg