
我的家庭網路很挑剔,rsync 可能隨時斷開連接,我的大文件將不得不從頭開始。
有沒有辦法將每個 1 GB 檔案分割成 50MB 增量,將它們傳送到目的地,然後將它們合併?這樣,即使文件被切斷,我也會在另一端保存一定比例的文件。
答案1
這個人已經給了很好的解釋: https://unix.stackexchange.com/a/165417/446381
因此,如果我想實現我的目標,我將使用--append-verify
rsync 標誌。
這--partial
對我來說似乎有點多餘。它作為隱藏檔案傳輸,後來重命名為部分檔案。我不喜歡這一點,因為 control-C 可能會破壞這個重命名過程。
答案2
簡短版本:為了使 rsync 更好地從中斷處重新啟動,請新增該--inplace
標誌。無需拆分大文件。
更長的版本:
將文件分成較小的文件並傳輸每個文件是一個好主意。然而你還是太辛苦了。 rsync 在內部將檔案分成 64k 區塊......有點像。有一種方法可以滿足rsync
您的要求:添加--inplace
標誌。
讓我們看看您遇到的更大問題:您的網路連線不可靠,您需要一種方法來傳送大檔案。
如果您使用--inplace
flag (這意味著--partial
),您將獲得所需的結果。每次傳輸中斷時,rsync
都會使檔案處於一種狀態,以便下次執行時可以有效率地從中斷處繼續(相同)rsync
。
--inplace
只需多次使用並執行 rsync 命令,直到所有內容都複製。
如果您非常偏執,則在成功複製所有檔案後,再執行一次新增--checksum
( -c
) 標誌。這將進行非常緩慢的逐字節重新檢查,而不是使用文件的時間戳來了解可以跳過哪些文件。由於所有文件都已正確複製,因此不應再找到任何工作要做。也就是說,我有時候這樣做只是為了內心平靜。您不想在初始運行期間使用此標誌,因為它將非常慢且浪費,因為它將重新讀取每個檔案的每個區塊。