如何讓 rsync 將檔案分割成更小的部分並在完成後將它們組合起來?

如何讓 rsync 將檔案分割成更小的部分並在完成後將它們組合起來?

我的家庭網路很挑剔,rsync 可能隨時斷開連接,我的大文件將不得不從頭開始。

有沒有辦法將每個 1 GB 檔案分割成 50MB 增量,將它們傳送到目的地,然後將它們合併?這樣,即使文件被切斷,我也會在另一端保存一定比例的文件。

答案1

這個人已經給了很好的解釋: https://unix.stackexchange.com/a/165417/446381

因此,如果我想實現我的目標,我將使用--append-verifyrsync 標誌。

--partial對我來說似乎有點多餘。它作為隱藏檔案傳輸,後來重命名為部分檔案。我不喜歡這一點,因為 control-C 可能會破壞這個重命名過程。

答案2

簡短版本:為了使 rsync 更好地從中斷處重新啟動,請新增該--inplace標誌。無需拆分大文件。

更長的版本:

將文件分成較小的文件並傳輸每個文件是一個好主意。然而你還是太辛苦了。 rsync 在內部將檔案分成 64k 區塊......有點像。有一種方法可以滿足rsync您的要求:添加--inplace標誌。

讓我們看看您遇到的更大問題:您的網路連線不可靠,您需要一種方法來傳送大檔案。

如果您使用--inplaceflag (這意味著--partial),您將獲得所需的結果。每次傳輸中斷時,rsync都會使檔案處於一種狀態,以便下次執行時可以有效率地從中斷處繼續(相同)rsync

--inplace只需多次使用並執行 rsync 命令,直到所有內容都複製。

如果您非常偏執,則在成功複製所有檔案後,再執行一次新增--checksum( -c) 標誌。這將進行非常緩慢的逐字節重新檢查,而不是使用文件的時間戳來了解可以跳過哪些文件。由於所有文件都已正確複製,因此不應再找到任何工作要做。也就是說,我有時候這樣做只是為了內心平靜。您不想在初始運行期間使用此標誌,因為它將非常慢且浪費,因為它將重新讀取每個檔案的每個區塊。

相關內容