Linux
rsync 複製整個文件而不是差異
我有 2 個包含少量文件的遠端文件夾。我
rsync
用來同步 2。問題是,在第一台伺服器上,文件每天都嚴格地附加新數據。當我打電話
rsync
給我時,它似乎再次複製了整個文件。我下面的電話正確嗎?
rsync -rtvu src_fld/ user@myserver:/opt/dst_fldr/
我的理解是
rsync
能夠計算這兩個文件之間的差異,所以我期待一個非常快速的更新。
rsync 正在做很多事情-在您的情況下,它可能會在雙方建立文件列表,比較它們,查找要傳輸的文件,讀取雙方的文件,計算雙方的滾動校驗和,交換校驗和資訊並傳輸不同的塊。這個過程需要時間,特別是如果您有大文件(千兆字節)或大量文件(數十萬)。由於發送方和接收方的大量計算和 I/O 成本,它不一定會加快傳輸速度,它只是可能會減少通過鏈路傳輸的數據量。
如果在您的情況下,唯一的文件更改是附加的(就像日誌不斷增長的情況一樣),請考慮使用該
--append-verify
選項rsync
將跳過整個計算密集型滾動校驗和計算並僅傳輸較大文件的尾部以填充較小的文件一。它還將在傳輸後通過執行單文件校驗和操作來驗證發送方和接收方上的文件是否相同。