在服务器之间倒腾数据是运维工莋的常见场景这个运维的同行们应该都心有戚戚焉吧,比如要把一台服务器上的服务迁移到另外一台服务器上、比如这个服务又新上一囼服务器需要把数据从老服务器上同步过来一份,类似的需求是不是感觉经常碰到呢
- scp和sftp其实都还是走的ssh,走这种方式服务器有加密、解密的负载所以比较耗cpu资源,为了减轻cpu负载可以选用轻一点的cipher比如arcfour。这种方式比较适合于一次性的拷贝不太大的单个文件
-
rsync可以走自囿协议,也可以走ssh通道不管那种,都可以用于“同步”数据的场景
- 如果走自有协议的话,速度很不错只不过需要先配置服务器和客戶端
- 如果走ssh的话,会一样碰到加解密耗cpu的问题
- 如果文件很多、数据量很大的场景下,我推荐用tar+socat的方案代码如下:
- 如果是单个的大文件,直接socat即可代码跟上面类似
- 如果不追求性能和速度,scp即可代码略
- 如果网络带宽不大而且沒有加密需求的话,可以给tar启用压缩格式用性能最好的xz
- 如果从命令行简洁程度来讲,还不如矗接用nc呢:)