Rsync
rsync 會寫入與備份無關的數據嗎?
我通過添加
--dry-run
(-n
)選項再次執行該過程來驗證我的 rsync 備份的完整性。根據 O’Reilly的說法,所有不同的文件都會出現在終端輸出中,但讓我感到困惑的是,在他們的範例中以及在我的兩個測試中,rsync 仍然報告有寫入數據。我有一個多 TB 的存檔,對我來說價值是兆字節。由於該
-n
選項,第一個 rsync 實際上執行複制,而第二個僅報告差異。如果沒有差異,輸出將如下所示:receiving file list ... done wrote 16 bytes read 7478 bytes 4996.00 bytes/sec total size is 3469510 speedup is 462.97
如果任何文件不同,它們的名稱將出現在“接收文件列表”消息之後:
receiving file list ... done /bin/ls /usr/sbin/sshd wrote 24 bytes read 7486 bytes 5006.67 bytes/sec total size is 3469510 speedup is 461.99
寫入和讀取的數據是指源程序和目標
rsync
程序之間元數據的通信。它們之間仍然必須進行通信,以確認沒有元數據發生變化並且不需要傳輸任何內容,並且通過網路連接寫入和讀取此數據。- Hey, this is my list of files, with their types, permissions, ownership and stuff. Is that any different from what you have? - No, that's exactly what I have. (Alternatively: No that's not what I have, but we're in dry-run mode so never mind) - Cool, thanks, seeya later! - Bye!
文件列表越大,需要通過網路連接傳遞的數據就越多,以確認沒有任何變化。
使用
-n
or--dry-run
時,您基本上告訴rsync
進行文件列表和元數據的這種通信,但即使源和目標之間的情況不同,也不更新磁碟上的文件。為此,仍然需要傳輸數據。