- A+
由于各种原因(例如电源故障或网络故障或用户干预),使用SCP命令通过SSH复制的大文件可能会被中断,取消或中断。前几天我将Ubuntu 16.04 ISO文件复制到我的远程系统。不幸的是,电源消失了,网络连接立即被丢弃。结果?复制过程终止!这只是一个简单的例子。Ubuntu ISO不是那么大,我可以在电源恢复后立即重启复制过程。但是在生产环境中,您可能不希望在传输大文件时执行此操作。
此外,您不能总是使用scp命令恢复中止的进程 。因为,如果这样做,它只会覆盖现有文件。在这种情况下你会做什么?别担心!这是Rsync实用程序派上用场的地方!Rsync可以帮助您恢复中断复制或下载过程。对于那些想知道的人来说,Rsync是一个快速,通用的文件复制实用程序,可用于从远程和本地系统复制和传输文件或文件夹。
它提供了大量选项来控制其行为的各个方面,并允许非常灵活地指定要复制的文件集。它以其delta传输算法而闻名,它通过仅发送源文件和目标中现有文件之间的差异来减少通过网络发送的数据量。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,我们可以轻松地恢复上述复制过程。
- 安卓客户端下载
- 微信扫一扫
- 微信公众号
- 微信公众号扫一扫