linux采用流式的传送方式进行主机间对拷教程

/ 0评 / 1

网站搬家,对于一般大文件(尤其是大部分碎文件)进行主机间对拷的时候,都是采用最常用的流程:打包压缩->传输->解压。在诸多次搬家之后,发现压缩吃硬盘IO性能,性能差的压缩速度很慢,传输的scp 吃带宽,尤其是现在各大云厂商提供的1M的小说水管。然后就会导致整个过程进展的非常慢,经等待笔记介绍采用流式的传送方法,(就是边压缩边传送,然后在目的端随便解压)我就试了试,效果不错,值得推荐!

当然这个命令也有优缺点

优点:采用流式,不用那么繁琐, 中间过程非阻断,可以任务异步进行,耽误时间少。(更新配合nohup命令后台使用,不用守在电脑跟前)

缺点:就是容易断开,如果网络中断。

首先准备两台机器新老机器各一台(数据库文件另算),以下为演示数据:

老机器ip 192.168.10.10

新机器ip 192.168.10.11

搬家的文件所在位置/home/wwwroot/www.test.com

搬到新机器的文件位置,/home/wwwroot/www.test.com

首先在老机器上生成公私钥,命令如下:

[root@logstash01 ~]# ssh-keygen  #在老Linux控制台 输入这个命令 之后一路回车下去 就ok 
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa): 
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
b0:f5:8a:f6:c3:f5:85:cf:9c:f7:55:28:15:ba:4c:60 root@logstash01
The key's randomart image is:
+--[ RSA 2048]----+
|          E   .  |
|         . . . . |
|      . .   o .  |
|       + . o o . |
|      . S . +.. .|
|       . .. ... .|
|      o... . = ..|
|     . .o   . = o|
|        ..     .o|
+-----------------+
[root@logstash01 ~]#

然后生成公私钥,利用下方命令将公钥拷贝要新机器(免密码登陆的机器)上。

[root@logstash01 ~]# ssh-copy-id 192.168.10.11  #命令ssh-copy-id  ip 之后输密码就行了,老机器第一次登陆新机器一般都需要输入一次yes,第二次就不需要了
The authenticity of host '192.168.10.11 (192.168.10.11)' can't be established.
RSA key fingerprint is ef:37:fb:c4:cf:32:12:97:e0:61:03:6d:c0:61:5b:2d.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '192.168.10.11' (RSA) to the list of known hosts.
root@10.22.3.54's password: 
Now try logging into the machine, with "ssh '10.22.3.54'", and check in:

  .ssh/authorized_keys

to make sure we haven't added extra keys that you weren't expecting.

[root@logstash01 ~]#

将公钥拷贝到新机器上之后会提示让你验证;

[root@logstash01 ~]# ssh 192.168.10.11
Last login: Thu Apr 12 17:31:23 2018 from 192.169.10.10
[root@logstash02 ~]#

成功之后关闭xshell终端,重新登录执行最后一个命令,(命令敲完 会又一个后台进程, 后台自己在传输文件,你看下网卡流量就行了,不要担心。

nohup `tar -c /home/wwwroot/www.test.com/ |gzip |ssh -c arcfour128 185.186.146.114 "gzip -d|tar -xC /home/wwwroot/" ` &

因为传送的时候是在后台运行的,所以你完全可以不用管,整个xshell终端关了也没事,该干嘛干嘛!好了之后将数据库在老机器上从phpmyadmin导出,然后在新机器上导入就行了。

最后提示

整个命令需要改动的两个地方,第一个地方 /home/wwwroot/www.test.com 这个是老机器网站文件所在位置, 第二个位置 192.168.10.11 新机器ip地址,。

发表评论

电子邮件地址不会被公开。 必填项已用*标注