linux如何更快的远程拷贝?scp,tar,rsync?

SCP?这就是SSH的便捷文件传输功能,对吗?

好吧,不完全是。这更像是黑客。或两种协议的无证件,非标准化混搭。让我们看一下令人兴奋的(和令人恐惧的)细节。

什么是scp?

安全复制协议(SCP)允许我们在两台计算机之间移动文件(和目录)。使用起来很简单:
scp local_file.txt remote_host:/home

这会将local_file.txt具有域名的另一台计算机(通常是服务器)复制remote_host到该/home目录中。

SCP问题

到目前为止,SCP听起来还不错。令人讨厌的设计和缺乏规范是不幸的,但这是一个足够简单的工具,似乎对很多人都有效。但是,现在让我们来看一些现实问题。

  • 大文件传输,没有压缩占用网络资源。
  • openSSH8.0更新提示:scp协议已经过时,不灵活,也不容易修复。我们建议使用更现代的协议,如sftp和rsync代替文件传输。

性能对比,使用tar命令实现远程拷贝提高复制效率和安全,如下测试?

# Copy a local folder with 10000 files
$ find /tmp/big_folder/ -type f | wc -l
10000

# Using scp
$ time scp -r -q /tmp/big_folder/ server:/tmp/big_folder

________________________________________________________
Executed in  882.99 millis	fish       	external
   usr time  114.09 millis	0.00 micros  114.09 millis
   sys time  278.46 millis  949.00 micros  277.51 millis

# Using tar over ssh
$ time sh -c "tar cf - /tmp/big_folder | ssh server 'tar xC /tmp/ -f -'"
tar: Removing leading '/' from member names

________________________________________________________
Executed in  215.68 millis	fish       	external
   usr time   93.22 millis	0.00 micros   93.22 millis
   sys time   66.51 millis  897.00 micros   65.62 millis

引用:https://gravitational.com/blog/scp-familiar-simple-insecure-slow/

posted @ 2020-06-29 09:49  quicksand.F  阅读(925)  评论(0编辑  收藏  举报