Filesystems
rsync 在不同文件系統之間複製未修改的文件
我嘗試使用 rsync 在兩台機器之間同步文件,但無論文件修改時間如何,它似乎都會複製所有文件。連續兩次呼叫該命令會產生相同的結果,因此它顯然被破壞了。
有問題的命令是:
rsync -r local/path user@host:/remote/path -v
本地文件系統是 ext4,而遠端文件系統是 ext3。我懷疑問題出在這裡,因為當我嘗試在同一個 ext3 系統和 NTFS 驅動器之間同步文件時,我遇到了類似的問題。將後者轉換為 ext3 解決了這個問題。
這次我不能求助於皈依。有誰知道問題的確切根源和任何可能的解決方案?
預設情況下,rsync 不會根據文件的修改時間和大小來複製文件。
如果您不在
-t
命令行中使用,rsync 將不會保留修改時間,並且大小+時間檢查當然會失敗。您的不同文件系統的時間戳精度也很有可能導致問題 -
ext4
支持微秒,但ext3
僅限於秒。嘗試
--modify-window=1
在命令行中添加一個,告訴 rsync 以一秒的精度處理時間戳。或者,您可以
-c
強制對文件進行校驗和,但這當然會比 mtime + size 檢查慢得多,即使它確實為您節省了頻寬。