如何在 Linux 上通过 ssh 恢复部分传输的文件?
总会有这样的场景,我们有时会遇到由于某种原因而损坏的文件传输。原因可能有所不同,除非您明确关闭了特定的连接或进程,否则它是可以恢复的。
还需要注意的是,scp命令没有恢复选项,唯一的选择是简单地从头开始复制文件并覆盖现有文件。由于ssh断开连接而一次又一次地执行此操作的过程可能非常烦人且耗时。
Linux确实为我们提供了一个命令实用程序,我们可以使用它来代替ssh,并且该实用程序被命名为Rsync。
借助Rsync命令实用程序,我们可以轻松恢复通过SSH部分传输的文件的过程。
为了使用Rsync,我们必须首先了解它是什么以及使用它的好处是什么。
Rsync是一个Linux命令行实用程序,用于在本地和远程系统之间传输和复制文件或文件夹。它提供了大量可供我们使用的选项,而且使用起来也非常灵活。它以其增量传输算法而闻名,该算法通过仅发送源文件和目标中现有文件之间的差异来帮助减少通过网络发送的数据量。
Rsync主要用于备份和镜像,基本上是copy命令的改进版本。
现在,在使用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