By 大伟哥 |
最近到国外的网络环境很差,丢包率大的感人,还时不时地断开,这时候如果要在本机和远程服务器间使用scp命令传输大文件的话,成功与否只能看运气了。传输过程中一个不小心断开了,只好从头再来一遍。其实对于大文件的传输,我们可以使用rsync来代替scp命令。
rsync主要是在类unix系统下作为数据镜像备份和文件同步工具使用的,从软件的命名上就可以看出来了——remote sync。它的特性如下:
- 可以镜像保存整个目录树和文件系统。
- 可以很容易做到保持原来文件的权限、时间、软硬链接等等。
- 无须特殊权限即可安装。
- 优化的流程,文件传输效率高。
- 可以使用rcp、ssh等方式来传输文件,当然也可以通过直接的socket连接。
- 支持匿名传输。
这里我们只用它能够断点续传的特点在网络不好的环境下传输大的文件,算是有点大材小用了。就传输单个文件来说,它的用法和scp命令差不多,比如我要把远程服务器linode-server上的数据库备份文件database-backup.sql保存到本地,命令形式如下:
daweibro@localhost:~$ rsync -P daweibro@linode-server:/home/daweibro/database-backup.sql /home/daweibro/. daweobro@linode-server's password: database-backup.sql 34,948,241 100% 96.58kB/s 0:05:53 (xfr#1, to-chk=0/1)
rsync默认使用ssh的22端口,那么如果我们的服务器为了安全已经修改成其他的端口,比如端口是1234那怎么办呢?可以加上 -e 'ssh -p 1234'参数来指定端口号:
rsync -P -e 'ssh -p 1234' daweibro@linode-server:/home/daweibro/database-backup.sql /home/daweibro/.
2017-12-07更新一个断点续传的实际例子:
daweibro@local:~$ rsync -P -e'ssh -p 1234' daweibro@remote.com:/home/daweibro/database-backup-20171207.sql /home/daweibro/. daweibro@remote.com's password: database-backup-20171207.sql 7,634,944 92% 58.73kB/s 0:00:10 Timeout, server remote.com not responding. rsync: connection unexpectedly closed (7798898 bytes received so far) [receiver] rsync error: error in rsync protocol data stream (code 12) at io.c(226) [receiver=3.1.1] rsync: connection unexpectedly closed (59 bytes received so far) [generator] rsync error: error in rsync protocol data stream (code 12) at io.c(226) [generator=3.1.1] daweibro@local:~$ rsync -P -e'ssh -p 1234' daweibro@remote.com:/home/daweibro/database-backup-20171207.sql /home/daweibro/. daweibro@remote.com's password: database-backup-20171207.sql 8,268,435 100% 3.11MB/s 0:00:02 (xfr#1, to-chk=0/1)
看到了吧?已经传输到92%的进度了,结果人品不好歇菜了。如果不能断点续传的话,再从头传一遍浪费时间不说,说不定传输的过程中又会断开,那就不用干活了。所以使用rsync很有必要。rsync,我为你带盐。
- 添加新评论
- 1749 阅读
评论
博主对技术很了解嘛,我就不知道这个,所以来学习了
做网站的过程中,碰到问题就搜索解决方法,解决了就记录一下…
做网站的过程中,碰到问题就搜索解决方法,解决了就记录一下,做的多了,了解的也就多了。一般从需求入手学习,比较有动力:)
搞不明白
这个是可以断点续传的,断开以后再重新连上…
这个是可以断点续传的,断开以后再重新连上,不用重新传输已经传输过的,不至于从头开始传,已经不错了。
谢谢博主的分享,在这能知道国外的网情
欢迎常来,多多交流!
欢迎常来,多多交流!
大文件传输我用得很少,所以没有这个需求,看起来很难
其实不是很难,知道有这么个东西就可以了…
其实不是很难,知道有这么个东西就可以了,用的时候现查就能解决。
我一般是碰到这种问题,网上搜索解决了,随手写篇帖子记下来,以后用的时候直接在博客上搜索就能找到了。
添加新评论