Rsync
rsync 是否驗證在兩個本地驅動器之間複製的文件?
我想將大量文件從一個本地驅動器複製到另一個驅動器。
我讀過 rsync 在通過網路將文件發送到遠端電腦時會對文件進行校驗和比較。
- rsync 在兩個本地驅動器之間複製文件時會進行比較嗎?
- 如果它確實進行了驗證 - 這是一個安全的選擇嗎?還是逐字節比較更好?
rsync 總是使用校驗和來驗證文件是否正確傳輸。如果目標文件已經存在,如果修改時間和大小與源文件匹配,rsync 可能會跳過更新文件,但如果 rsync 決定需要傳輸數據,則始終對發送和接收 rsync 程序之間傳輸的數據使用校驗和. 這驗證了接收到的數據與發送的數據相同的機率很高,而沒有通過網路進行字節級比較的沉重成本。
接收到文件數據後,rsync 將數據寫入文件並相信如果核心指示寫入成功,則將數據寫入磁碟而不會損壞。rsync 不會重新讀取數據並與已知校驗和進行比較作為附加檢查。
至於驗證本身,對於協議 30 及更高版本(首先在 3.0.0 中支持),rsync 使用MD5。對於較舊的協議,使用的校驗和是MD4。
雖然長期以來被認為對於安全加密雜湊來說已經過時,但 MD5 和 MD4 仍然足以檢查文件損壞。
來源:手冊頁並查看 rsync 原始碼以進行驗證。