因为例如电源故障、网络故障或用户干预等各类缘由,使用scp命令通过SSH复制的小型文件可能会中断、取消或毁坏。有三天,我将Ubuntu16.04ISO文件复制到我的远程系统。不幸的是断电了,网路联接立刻断了。结果么?复制过程中止!这只是一个简单的反例。UbuntuISO并不是这么大,一旦电源恢复,我就可以重新启动复制过程。但在生产环境中,当你在传输小型文件时,你可能并不希望这样做。
但是linux ssh 传文件,你不能继续使用scp命令恢复被终止的进度。由于,假如你这样做linux 关机命令linux软件下载,它只会覆盖现有的文件。这时你会怎样做?别害怕!这是rsync派上用场的地方!rsync可以帮助你恢复中断的复制或下载过程。对于这些好奇的人,rsync是一个快速、多功能的文件复制程序,可用于复制和传输远程和本地系统中的文件或文件夹。
它提供了大量控制其各类行为的选项,并容许十分灵活地指定要复制的一组文件。它以增量传输算法而享誉,它通过仅发送源文件和目标中现有文件之间的差别来降低通过网路发送的数据量。rsync广泛用于备份和镜像,以及日常使用中改进的复制命令。
如同scp一样,rsync也会通过SSH复制文件。假如你想通过SSH下载或传输大文件和文件夹,我建议您使用rsync。请注意,应当在两侧(远程和本地系统)都安装rsync来恢复部份传输的文件。
使用rsync恢复部份传输的文件
好吧linux ssh 传文件,让我给你看一个反例。我将使用命令将Ubuntu16.04ISO从本地系统复制到远程系统:
$ scp Soft_Backup/OS Images/Linux/ubuntu-16.04-desktop-amd64.iso sk@192.168.43.2:/home/sk/
这儿,
如今,我按下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,我们可以轻松地通过前面描述的那样恢复复制的进度。
文章评论