如何在rsync中实现断点续传
在进行大文件复制时,由于网络的不稳定性,经常会出现服务器无法响应的情况。为了解决这个问题,我们可以使用rsync工具来实现断点续传功能。 rsync工作模式 rsync有六种不同的工作模式:
在进行大文件复制时,由于网络的不稳定性,经常会出现服务器无法响应的情况。为了解决这个问题,我们可以使用rsync工具来实现断点续传功能。
rsync工作模式
rsync有六种不同的工作模式:
- 本地拷贝:当SRC和DES路径信息都不包含冒号“:”分隔符时启动该模式。
- 通过远程shell程序访问:使用一个远程shell程序(如rsh、ssh)将本地机器的内容拷贝到远程机器。当DST路径地址包含冒号“:”分隔符时启动该模式。
- 通过远程shell程序访问:使用一个远程shell程序(如rsh、ssh)将远程机器的内容拷贝到本地机器。当SRC地址路径包含冒号“:”分隔符时启动该模式。
- 从远程rsync服务器中拷贝文件到本地机:当SRC路径信息包含“::”分隔符时启动该模式。
- 从本地机器拷贝文件到远程rsync服务器中:当DST路径信息包含“::”分隔符时启动该模式。
- 列出远程机的文件列表:类似于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的工作模式和参数的使用,我们可以轻松地实现断点续传功能,并提高大文件复制的效率。