如何使用 rsync 透過 SSH 恢復部分傳輸的檔案

Sk發表於2018-05-02


由於諸如電源故障、網路故障或使用者干預等各種原因,使用 scp 命令透過 SSH 複製的大型檔案可能會中斷、取消或損壞。有一天,我將 Ubuntu 16.04 ISO 檔案複製到我的遠端系統。不幸的是斷電了,網路連線立即斷了。結果麼?複製過程終止!這只是一個簡單的例子。Ubuntu ISO 並不是那麼大,一旦電源恢復,我就可以重新啟動複製過程。但在生產環境中,當你在傳輸大型檔案時,你可能並不希望這樣做。

而且,你不能繼續使用 scp 命令恢復被中止的進度。因為,如果你這樣做,它只會覆蓋現有的檔案。這時你會怎麼做?別擔心!這是 rsync 派上用場的地方!rsync 可以幫助你恢復中斷的複製或下載過程。對於那些好奇的人,rsync 是一個快速、多功能的檔案複製程式,可用於複製和傳輸遠端和本地系統中的檔案或資料夾。

它提供了大量控制其各種行為的選項,並允許非常靈活地指定要複製的一組檔案。它以增量傳輸演算法而聞名,它透過僅傳送原始檔和目標中現有檔案之間的差異來減少透過網路傳送的資料量。 rsync 廣泛用於備份和映象,以及日常使用中改進的複製命令。

就像 scp 一樣,rsync 也會透過 SSH 複製檔案。如果你想透過 SSH 下載或傳輸大檔案和資料夾,我建議您使用 rsync。請注意,應該在兩邊(遠端和本地系統)都安裝 rsync 來恢復部分傳輸的檔案。

好吧,讓我給你看一個例子。我將使用命令將 Ubuntu 16.04 ISO 從本地系統複製到遠端系統:

$ scp Soft_Backup/OS Images/Linux/ubuntu-16.04-desktop-amd64.iso sk@192.168.43.2:/home/sk/

這裡,

  • sk是我的遠端系統的使用者名稱

  • 192.168.43.2 是遠端機器的 IP 地址。

現在,我按下 CTRL+C 結束它。

示例輸出:

sk@192.168.43.2's password: 
ubuntu-16.04-desktop-amd64.iso 26% 372MB 26.2MB/s 00:39 ETA^c

圖片描述

正如你在上面的輸出中看到的,當它達到 26% 時,我終止了複製過程。

如果我重新執行上面的命令,它只會覆蓋現有的檔案。換句話說,複製過程不會在我斷開的地方恢復。

為了恢復複製過程,我們可以使用 rsync 命令,如下所示。

$ rsync -P -rsh=ssh Soft_Backup/OS Images/Linux/ubuntu-16.04-desktop-amd64.iso sk@192.168.43.2:/home/sk/

示例輸出:

sk@192.168.1.103's password:
sending incremental file list
ubuntu-16.04-desktop-amd64.iso                   380.56M 26% 41.05MB/s 0:00:25

圖片描述

看見了嗎?現在,複製過程在我們之前斷開的地方恢復了。你也可以像下面那樣使用 -partial 而不是 -P 引數。

$ rsync --partial -rsh=ssh Soft_Backup/OS Images/Linux/ubuntu-16.04-desktop-amd64.iso sk@192.168.43.2:/home/sk/

這裡,引數 -partial-P 告訴 rsync 命令保留部分下載的檔案並恢復進度。

或者,我們也可以使用以下命令透過 SSH 恢復部分傳輸的檔案。

$ rsync -avP Soft_Backup/OS Images/Linux/ubuntu-16.04-desktop-amd64.iso sk@192.168.43.2:/home/sk/

或者,

rsync -av --partial Soft_Backup/OS Images/Linux/ubuntu-16.04-desktop-amd64.iso sk@192.168.43.2:/home/sk/

就是這樣了。你現在知道如何使用 rsync 命令恢復取消、中斷和部分下載的檔案。正如你所看到的,它也不是那麼難。如果兩個系統都安裝了 rsync,我們可以輕鬆地透過上面描述的那樣恢復複製的進度。

如果你覺得本教程有幫助,請在你的社交、專業網路上分享,並支援我們。還有更多的好東西。敬請關注!

乾杯!


via:

作者: 譯者: 校對:

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/2894/viewspace-2808850/,如需轉載,請註明出處,否則將追究法律責任。

相關文章