rsync断点续传方式

这里
这里



scp远程拷贝和cp本地拷贝都没有断点续传功能,rsync拷贝才有断点续传功能

#本地usb文件以断点续传的方式拷贝到本地目录
rsync -avuP  /mnt/a.tar.gz   /opt/a.tar.gz

显示拷贝进度:
43,269,259   12%   35.8MB/s   18:31:30
ls -a 目录下会生成一个.a.tar.gz.oc0cL8的临时文件

#本地文件以断点续传的方式拷贝到远程服务器
rsync -avuP a.tar.gz  root@192.168.1.100:/opt/a.tar.gz

#远程文件以断点续传的方式拷贝到本地
rsync -avuP root@192.168.1.100:/opt/a.tar.gz ./a.tar.gz    


常用参数:
-a: 以archive模式操作,复制目录、符号连接,等价于 -rlptgoD 。
-v: 打印详情
-u: 只进行更新,防止本地新文件被重写,注意两者机器的时钟的同时
-P: 等同于 --partial --progress
--partial: 保留那些因故没有完全传输的文件,以是加快随后的再次传输(即断点续传)
--progress: 在传输过程中显示进度
-r: 对子目录以递归模式处理
-z: 在传输过程中进行压缩
-t, --times: 保留修改时间

rsync断点续传方式拷贝本地文件或远程文件,目录下会生成一个隐藏的临时文件,ls -a 可以看到,每次终端后,下次拷贝还能续传拷贝






rsync断点续传
描述:rsync是linux系统下的数据镜像备份工具。使用快速增量备份工具Remote Sync可以远程同步,支持本地复制,或者与其他SSH、rsync主机同步。

需求:当你在本地或者远程拷贝大文件时,可能会因为服务器、路由网络等不稳定性造成连接中断,这时就需要一个可以断点续传的工具进行传输

格式

注:默认不指定端口是22。需要指定加-e选项:-e 'ssh -p 端口'

本地文件以断点续传的方式拷贝到远程服务器

rsync -avP /etc/test.tar  root@192.168.1.100:/opt/

指定ssh端口:rsync -avP -e 'ssh -p 端口' /etc/test.tar  root@192.168.1.100:/opt/

远程文件以断点续传的方式拷贝到本地

rsync -avP root@192.168.1.100:/opt/test.tar /etc/

指定ssh端口:rsync -avP -e 'ssh -p 端口' root@192.168.1.100:/opt/test.tar /etc/



常用参数

-a:以archive模式操作,复制目录、符号连接,等价于 -rlptgoD 。

-v:详细提示 

-z:压缩

-u:只进行更新,防止本地新文件被重写,注意两者机器的时钟的同时

-P:是综合了--partial --progress两个参数

             --partial

               如果在拷贝文件的过程中,传输被中断,rsync的默认操作是撤消前操作,即从目标机上删除已拷贝的部分文件。

               如果想在下次拷贝时续传文件,不需要重新拷贝所有文件的话,可以使用-partial选项阻止rsync在传输中断时删除已拷贝的部分

               大白话:保留那些因故没有完全传输的文件,以是加快随后的再次传输(即断点续传)

            --progress 在传输中显示进度条

-e:参数的作用是可以使用户自由选择要使用的shell程序来连接远端服务器

             -e ‘ssh -p 9222’ 指定ssh的端口为9222,默认不指定是22

-r:对子目录以递归模式处理

-t:--times: 保留修改时间

--bwlimit: --bwlimit=5000  限制带宽为5000k Bytes/s =5MB