作者 | Sk
譯者 | geekpi ? ? 共計翻譯:707 篇 貢獻時間:1651 天
由於諸如電源故障、網路故障或使用者幹預等各種原因,使用 scp
命令透過 SSH 複製的大型檔案可能會中斷、取消或損壞。有一天,我將 Ubuntu 16.04 ISO 檔案複製到我的遠端系統。不幸的是斷電了,網路連線立即斷了。結果麼?複製過程終止!這隻是一個簡單的例子。Ubuntu ISO 並不是那麼大,一旦電源恢復,我就可以重新啟動複製過程。但在生產環境中,當你在傳輸大型檔案時,你可能並不希望這樣做。
而且,你不能繼續使用 scp
命令恢復被中止的進度。因為,如果你這樣做,它只會改寫現有的檔案。這時你會怎麼做?別擔心!這是 rsync
派上用場的地方!rsync
可以幫助你恢復中斷的複製或下載過程。對於那些好奇的人,rsync
是一個快速、多功能的檔案複製程式,可用於複製和傳輸遠端和本地系統中的檔案或檔案夾。
它提供了大量控制其各種行為的選項,並允許非常靈活地指定要複製的一組檔案。它以增量傳輸演演算法而聞名,它透過僅傳送源檔案和標的中現有檔案之間的差異來減少透過網路傳送的資料量。 rsync
廣泛用於備份和映象,以及日常使用中改進的複製命令。
就像 scp
一樣,rsync
也會透過 SSH 複製檔案。如果你想透過 SSH 下載或傳輸大檔案和檔案夾,我建議您使用 rsync
。請註意,應該在兩邊(遠端和本地系統)都安裝 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: https://www.ostechnix.com/how-to-resume-partially-downloaded-or-transferred-files-using-rsync/
作者:SK[2] 譯者:geekpi 校對:wxy
本文由 LCTT 原創編譯,Linux中國 榮譽推出