2016 - 2024

感恩一路有你

如何在rsync中实现断点续传

浏览量:4149 时间:2024-01-17 10:26:16 作者:采采

在进行大文件复制时,由于网络的不稳定性,经常会出现服务器无法响应的情况。为了解决这个问题,我们可以使用rsync工具来实现断点续传功能。

rsync工作模式

rsync有六种不同的工作模式:

  1. 本地拷贝:当SRC和DES路径信息都不包含冒号“:”分隔符时启动该模式。
  2. 通过远程shell程序访问:使用一个远程shell程序(如rsh、ssh)将本地机器的内容拷贝到远程机器。当DST路径地址包含冒号“:”分隔符时启动该模式。
  3. 通过远程shell程序访问:使用一个远程shell程序(如rsh、ssh)将远程机器的内容拷贝到本地机器。当SRC地址路径包含冒号“:”分隔符时启动该模式。
  4. 从远程rsync服务器中拷贝文件到本地机:当SRC路径信息包含“::”分隔符时启动该模式。
  5. 从本地机器拷贝文件到远程rsync服务器中:当DST路径信息包含“::”分隔符时启动该模式。
  6. 列出远程机的文件列表:类似于rsync传输,但只需要省略掉本地机信息即可。

实例说明

下面是一个使用rsync进行断点续传的实例:

$ rsync -vazu --progress :~/works/ ~/works
  • -v: 详细提示
  • -a: 以archive模式操作,复制目录、符号连接
  • -z: 压缩
  • -u: 只进行更新,防止本地新文件被重写
  • --progress: 显示进度

以上命令将保持客户机10.1.6.160上的$HOME/works目录和当前机器的$HOME/works目录同步。如果传输中断,rsync会删除所有未完成的文件片段并开始新的传输。

使用--partial参数实现断点续传

为了实现断点续传功能,我们可以使用--partial参数。默认情况下,rsync在传输中断后会删除所有未完成的文件片段,然后重新开始传输。而使用--partial参数后,rsync会保留未完成的文件片段,并在下次传输时使用这些片段来加速传输。

另外,-P参数综合了--partial--progress两个参数,所以可以直接使用-avzP来实现断点续传:

$ rsync -avzP /tmp/bigfile :/tmp/bigfile

除此之外,还有两个常用的参数:

  • -t: 仅传输修改次数
  • -r: 递归方式复制

通过理解rsync的工作模式和参数的使用,我们可以轻松地实现断点续传功能,并提高大文件复制的效率。

版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。