Rsync

獲取 rsync 以生成更新檔文件而不是跨文件複製?

  • February 22, 2022

我正在使用 rsync 複製許多已從一台伺服器更改到另一台伺服器的文件。我知道我可以使用該-n選項進行試執行,這樣我就可以看到哪些文件已更改。但是,是否可以讓 rsync 列印更改的文件內容的差異?我想在複製之前看看發生了什麼?我可以保存到文件中並稍後使用 diff(1) 應用的東西?

可能有更好的方法,但這可能有效,儘管效率不高:

rsync -vrn / dest:/ > ~/file_list

然後編輯測試以刪除統計資訊,然後:

while read file; do
   diff $file <(ssh dest "cat $file")
done < ~/edited_file_list

另一種選擇:

您也可以考慮使用 sshfs/fuse 之類的東西掛載文件系統,然後只使用 diff。

對於創建更新檔:

rsync -arv --only-write-batch=patch new/ old/

應用它:

rsync -arv --read-batch=patch dir/

或使用自動生成的腳本:

./patch.sh

資料來源:

引用自:https://serverfault.com/questions/62364