rsync 是 unix 上常常被用來同步兩臺主機資料的指令。而 rsync 令人稱道同步能力,不僅僅是把檔案抓下來到本機,而是厲害到可以只下載一個檔案中的差異部分,而非整份檔案抓下來。 如果自己想自製一個能夠比較兩份文件差異的程式,稍微想一下設計,大約還能以行爲單位來設計,找出差異。 但是如果檔案並非純文字,而是像照片這般的二進位檔案,可能一整份檔案都沒有任何換行符號,一比較差異就是讓伺服器把整份檔案重新抓下來了。 面對通用檔案的差異比較,其設計思路就會朝向將檔案切成一塊一塊的區塊來進行差異比較。但終究需要面對以下問題: 不可能將每個區塊的內容下載下來讓客戶端進行比較,這樣等同下載整份檔案 如果只是檔頭加了一點內容,切割區塊有機會造成每個區塊內容就不同,也等同要下載整份檔案 面對以上問題,rsync 採用了一些不錯的解決對策 校驗和 (Checksum) 校驗和不是 rsync