如何在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 [email protected]:/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 [email protected]:/home/Documents/
输出
goAgent.tar.gz 100% 840.00M 26.2MB/s 0:00:43
广告