Centos

rsync –compare-dest,不是加速結果

  • September 11, 2020

我已嘗試rsync --compare-dest按預期工作,但我需要一些幫助。我的目標是為 CentOS 創建離線 repo deltas。我有一台連接到 Internet 的伺服器來儲存我的 CentOS 鏡像。我有一個離線系統的基線,我想創建 delta 文件,因為我需要在光碟上進行更新。

我知道圍繞同一個問題有很多主題,但我無法讓它發揮作用。

這是我如何嘗試讓一個簡單的範例工作的解釋:

[xttomfal@protectera-CentOS-Internet ~]$ ls testdiff1
testfil1  testfil2  testfil3
[xttomfal@protectera-CentOS-Internet ~]$ ls testdiff2
testfil1  testfil2

複製同名文件,表示內容完全相同。現在我創建了一個目錄diffresult/,我想在其中複製 testfil3。

如果我區分目錄

[xttomfal@protectera-CentOS-Internet ~]$ diff testdiff1 testdiff2
Only in testdiff1: testfil3
[xttomfal@protectera-CentOS-Internet ~]$

然後我嘗試了很多不同的 rsync compare-dest 命令,例如:

[xttomfal@protectera-CentOS-Internet ~]$ rsync -av --progress --stats --compare-dest=testdiff1 testdiff2/ diffresult/
sending incremental file list
--compare-dest arg does not exist: testdiff1
./
testfil1
             9 100%    0.00kB/s    0:00:00 (xfr#1, to-chk=1/3)
testfil2
             9 100%    8.79kB/s    0:00:00 (xfr#2, to-chk=0/3)

Number of files: 3 (reg: 2, dir: 1)
Number of created files: 2 (reg: 2)
Number of deleted files: 0
Number of regular files transferred: 2
Total file size: 18 bytes
Total transferred file size: 18 bytes
Literal data: 18 bytes
Matched data: 0 bytes
File list size: 0
File list generation time: 0.001 seconds
File list transfer time: 0.000 seconds
Total bytes sent: 215
Total bytes received: 106

sent 215 bytes  received 106 bytes  642.00 bytes/sec
total size is 18  speedup is 0.06
[xttomfal@protectera-CentOS-Internet ~]$ ls diffresult/
testfil1  testfil2
[xttomfal@protectera-CentOS-Internet ~]$

所以問題似乎是複制的文件是顯示在兩個目錄而不是 Delta 的文件。

有沒有辦法只複製目錄之間差異的文件?

有沒有辦法只複製目錄之間差異的文件?

是的。在您的情況下,所缺少的只是比較目錄是相對於目標的。同樣的問題也適用於連結目錄。這裡的解決方案是使用絕對路徑

設想

mkdir /tmp/608927
cd /tmp/608927
mkdir testdiff{1,2} changed
touch testdiff1/testfil{1,2,3}
cp -p testdiff1/testfil{1,2} testdiff2/

測試執行,將文件從 複製testdiff1changed,但只複製那些既不是最新的,testdiff2也不是最新的changed

rsync -av --compare-dest "$PWD"/testdiff2/ testdiff1/ changed/

輸出

sending incremental file list
./
testfil3

sent 165 bytes  received 38 bytes  406.00 bytes/sec
total size is 0  speedup is 0.00

證據

ls changed/
testfil3

請注意,如果您在看起來像是在本地系統上的目錄之間進行複制,rsync則會有效地降級為製作完整副本(或不複製)。如果您rsync在網路連接上執行,它可以在每一端執行一個自身的實例,您將獲得僅傳輸更改的好處。

引用自:https://unix.stackexchange.com/questions/608927