如何在Linux上恢復透過ssh部分傳輸的檔案?


有時我們會遇到檔案傳輸中斷的情況。原因可能多種多樣,除非你顯式地關閉了連線或程序,否則它通常是可以恢復的。

需要注意的是,scp 命令沒有恢復選項,只能從頭開始複製檔案並覆蓋現有檔案。由於ssh斷開連線而反覆進行此操作可能會非常煩人和耗時。

Linux 提供了一個命令列工具 rsync,可以替代 ssh 來完成這項工作。

藉助 rsync 命令列工具,我們可以輕鬆恢復透過 SSH 部分傳輸的檔案。

為了使用 Rsync,我們首先需要了解它是什麼以及使用它的好處。

rsync 是一個 Linux 命令列工具,用於在本地和遠端系統之間傳輸和複製檔案或資料夾。它提供了許多可用的選項,非常靈活易用。它以其增量傳輸演算法而聞名,該演算法透過僅傳送原始檔和目標檔案中差異來減少網路上傳送的資料量。

rsync 主要用於備份和映象,基本上是複製命令的改進版本。

現在,在使用 Rsync 實用程式之前,我們應該先安裝它。下面列出了幾個命令,說明如何在你的機器上安裝 Rsync 實用程式。

對於 Debian 和 Ubuntu

sudo apt-get install rsync

在 Fedora 上

sudo dnf install rsync

現在讓我們看一個例子,我將嘗試將特定檔案從我的機器複製到另一臺遠端機器。

命令

scp goAgent.tar.gz immukul@192.168.110.11:/home/Documents/

在上述情況下,我使用了 scp 命令(安全複製的縮寫),它允許我們在本地和遠端之間複製檔案。

我將使用 CTRL + C 來故意取消上述過程。

輸出

現在,如果我在遠端機器上檢查檔案,我將看到:

goAgent.tar.gz 51% 399MB 26.2MB/s 00:39 ETA^c

現在只需執行類似這樣的 Rsync 命令,你的過程就會恢復。

rsync -P -rsh=ssh goAgent.tar.gz immukul@192.168.110.11:/home/Documents/

輸出

goAgent.tar.gz 100% 840.00M 26.2MB/s 0:00:43

更新於:2021年7月30日

758 次瀏覽

啟動你的職業生涯

透過完成課程獲得認證

開始學習
廣告