最新2018年双十一活动在阿里云买了三年的服务器,两个不同账号不同地域的服务器,无法通过快照创建自定义镜像方式把数据传到新服务器上,数据盘有200GB数据,这会比较麻烦了,搞了好几天,先是用了WinSCP 后台传输,结果传到30GB后开始出现缓存区太小,经过设置也不能达到最大网速。后来用scp命令 此命令比较简单,传输速度是达到了理想值,但由于中间断开了,在继续传是没有断点继传,已存在的文件不能跳过,只能又重新在来,这样实在太麻烦了。最后查了一下有rsync命令,不会覆盖原来已经文件,也是通过sshd是比较理想的,现在把方法分享给大家。
首先还是要说scp命令,因为简单,对于小量数据是可以的:
上传本地文件到远程机器指定目录
scp /www/wmphp.tar.gz root@wmphp:/www
复制本地/www/
目录下的文件wmphp.tar.gz到远程机器wmphp.com的/www
目录。
上传本地目录到远程机器指定目录
scp -r /www root@wmphp.com:/www
上传本地目录/www
到远程机器wmphp.com上/www
的目录中去。
当然还有返着来的,从远程服务器复制到本地,但我觉得这个方法上传更直观,就是把文件发到目标新服务器上。
注:复制命令cp -n 可以跳过已存在文件,而scp没有参数,就像Linux查流量弱爆了。
最后主人公出场了,rsync 它比scp更强大,支持“不覆盖”原目录
rsync -avzu --progress www root@wmphp.com:/www/ //u选项,指定不覆盖原目录内容
rsync -avzuP www root@wmphp.com:/www/ //P要大写,两个命令相同
-a --archive :归档模式,表示递归传输并保持文件属性。等同于"-rtopgDl"。
-v:显示rsync过程中详细信息。可以使用"-vvvv"获取更详细信息。
-z :传输时进行压缩提高效率。
-u --update :仅在源mtime比目标已存在文件的mtime新时才拷贝。注意,该选项是接收端判断的,不会影响删除行为。
-P:显示文件传输的进度信息。(实际上"-P"="--partial --progress",其中的"--progress"才是显示进度信息的)。
注:-a 等同于"-rtopgDl",下面的命令“-avzuPtro” 显然多余了。
参考文章:https://www.cnblogs.com/f-ck-need-u/p/7220009.html
完美源码 » Linux 两台服务器之间数据传输