使 rsync 顯示校驗和比較的進度,即使沒有發現差異

使 rsync 顯示校驗和比較的進度,即使沒有發現差異

我運行此命令來檢查兩個資料夾的相同性,並將所有差異放入日誌檔案中:

rsync -av --delete --checksum --dry-run --stats --itemize-changes --out-format='%t %i %f ' SOURCE DESTINATION | tee log.txt

如果您正在比較的文件之間沒有差異,rsync 將不會提及除此之外的任何內容,直到作業結束:

發送增量檔案列表

如果能獲得一些有關 rsync 所在位置的信息,那就太好了。特別是當您比較大量文件時。是否可以使 rsync 將所有檢查列印到終端中並僅將差異保留在日誌檔案中?

PS:--info=progress2沒有幫助。

答案1

[我發現您需要 rsync 正在計算校驗和的文件列表,因為正在計算這些校驗和。從我的閱讀看來,這似乎不可用。我在下面提供了一些關於 rsync 報告如何運作以及如何報告我所理解的進度的更一般資訊。

如果有文件要傳輸,那麼--info=progress1開關(“每個文件進度”)將為您提供一些進度資訊。當每個文件被傳輸時,它會給你一些看起來像這樣的東西:

MD5SUMS.gnome
        141   0%    0.00kB/s    0:00:00 (xfr#1, to-chk=11/13)
ParrotSecurity.lnk
        179   0%   37.11kB/s    0:00:00 (xfr#2, to-chk=10/13)
SHA256SUMS.mate
        486   0%  336.91kB/s    0:00:00 (xfr#3, to-chk=9/13) 
SHA256SUMS.mate.gpg
      1,419   0%    1.22MB/s    0:00:00 (xfr#4, to-chk=8/13)
SHA256SUMS.ubuntu
      1,994   0%    1.77MB/s    0:00:00 (xfr#5, to-chk=7/13)
SHA256SUMS.ubuntu.gpg
      2,927   0%    2.66MB/s    0:00:00 (xfr#6, to-chk=6/13)

xfer告訴您正在傳輸哪個文件(xfer#6是第 6 個),並且to-chk(比如說to-chk=6/13)告訴您這是 13 個文件中的第 6 個。

請注意,您不會在 a 中獲得此訊息,--dry-run因為沒有任何內容可傳輸。 (您也可以使用 獲得此輸出--progress,儘管從手冊頁中尚不清楚,我現在不會檢查。)

如果你查看--recursive手冊頁,你會發現從 3.0.0 版本開始,rsync -r會在開始之前檢查一些目錄,然後在傳輸時繼續檢查它們。這是“增量遞歸”掃描,在這種情況下,您將看到ir-chk而不是to-chk.並且,ir-chk隨著它逐步掃描更多文件,“分母”會增加。

如果您沒有使用--recursive,則首先進行校驗和識別必須傳輸的所有文件,然後將它們一一傳輸。確實如此不是似乎您可以獲得有關計算校驗和的初始階段的任何類型的進度報告,因為 rsync 尚不知道將有多少文件或它們有多大。至於是否可以在計算校驗和時獲得文件名列表,從我的閱讀來看,似乎並非如此。 (但是可能有一個巧妙的技巧,而且很難證明是否定的!)

相關內容