rsync
https://blog.youkuaiyun.com/u014389734/article/details/119793591
rsync-linux断点续传(超越scp)
https://juejin.cn/post/7021503974175932453
什么是断点续传?
在网络状况不好的情况下,对于文件的传输,我们希望能够支持可以每次传部分数据。断点续传其实正如字面意思,就是在下载的断开点继续开始传输,不用再从头开始。所以理解断点续传的核心后,发现其实和很简单,关键就在于对传输中断点的把握,我就自己的理解画了一个简单的示意图:
Linux断点续传文件
在Linux系统上传与下载文件的时候,很容易断开,或者是大文件传输,如何在断开后继续传输不用重新开始,这里我们可以用到Linux的rsync
使用说明
文件断点下载
rsync -P --rsh=ssh root@192.168.0.11:/root/large.tar.gz /dounine/targe.tar.gz
文件断点上传
rsync -P --rsh=ssh /dounine/targe.tar.gz root@192.168.0.11:/root/large.tar.gz
文件目录断点下载
rsync -P --rsh=ssh -r root@192.168.0.11:/root/storage /dounine
文件目录断点上传
rsync -P --rsh=ssh -r /dounine root@192.168.0.11:/root/storage
后台运行,将以上脚本放入shell文件中
cat bg.sh
rsync -P --rsh=ssh -r root@192.168.0.11:/root/storage /dounine &
后台运行
chmod +x bg.sh
nohup ./bg.sh
rsync + ssh 断点续传
#rsync同步本地文件 filename 到远程机器 192.168.188.188 服务器的/data/tmp目录下
rsync -avzP -e ‘ssh -p 61204’ --bwlimit=5000 filename username@10.20.90.101:/data/tmp/ >> scp_to_101.log
-a:以archive模式操作,复制目录、符号连接,等价于 -rlptgoD 。
-v:详细提示
-z:压缩
-P:是综合了–partial --progress两个参数
–partial
如果在拷贝文件的过程中,传输被中断,rsync的默认操作是撤消前操作,即从目标机上删除已拷贝的部分文件。
如果想在下次拷贝时续传文件,不需要重新拷贝所有文件的话,可以使用-partial选项阻止rsync在传输中断时删除已拷贝的部分
–progress 显示进度条
-e:参数的作用是可以使用户自由选择欲使用的shell程序来连接远端服务器
ssh -p 61204 指定ssh的端口(非默认22)61204
–bwlimit: --bwlimit=5000 限制带宽为5000k Bytes/s =5MB
上例:使用rsync传输本地文件filename到192.168.188.188的/data/tmp目录下 使用压缩归档传输、限速5MB、支持断点续传 使用ssh协议
screen
四、使用screen
screen -S myjobs
会弹出一个新的会话框,输入您想要输入的耗费时间的命令,然后测试一下网络中断
screen -r myjobs(恢复)
然后就可以看到命令执行的进度了。而且,在你断网的这一段时间里,服务器端的命令一直在运行着。