驗證 rsync 是否複製了它應該複製的所有內容?

驗證 rsync 是否複製了它應該複製的所有內容?

我正在嘗試使用 rsync 備份遠端 Linux 伺服器

我在我的桌面 PC (Win7/64) 上運行 DeltaCopy 作為伺服器,並透過 SSH 到 Linux 機器運行 rsync,sudo 到 root,並執行類似的操作(出於明顯的原因,稍微混淆了):

rsync -azv --modify-window=1 \
--exclude={/dev/*,/proc/*,/sys/*,/tmp/*,/run/*,/mnt/*,/media/*,/lost+found/*} \
--log-file=/var/log/rsync.log /* rsync://[email protected]/MyBackup

它似乎有效,但我擔心可能有一個或多個文件沒有被複製並悄悄地落在裂縫之間。

有沒有什麼簡單的方法可以讓 rsync 在 Linux 機器上產生一個簡潔的檔案列表,這些檔案應該已經被複製,但要么沒有被複製,要么是不同的,所以我會知道哪些需要特別注意(MySQL InnoDB , ETC)?

另外,根據上面的範例,如果某些內容發生了變化,我應該對後續運行進行哪些更改,以便用較新的版本替換副本?

答案1

嘗試以下選項:

--dry-run

答案2

根據 rsync 手冊,-v 選項將告訴要複製哪些檔案。然後,您可以使用這些檔案名稱並建立一個在兩個系統上執行的腳本並執行 md5 求和。然後,您可以比較文件,並在必要時使用不同的 md5 scp 文件。

相關內容