如何通过 ssh 压缩、分割、管道传输、解压缩

如何通过 ssh 压缩、分割、管道传输、解压缩

我正在通过 LAN 复制大文件,我注意到通过执行一个 ssh 管道,我可以获得大约 10MB/s 的传输速度。然而,如果我同时发射其中四个,我总共可以获得大约 40MB/s 的传输速度。

所以我想将一个大文件(例如1GB)分成几个部分,并单独对每个部分进行管道传输,然后在另一侧重新组装。还需要在传输之前 tar/zip,并在另一侧解压/解压。

我怎样才能做到这一点?

答案1

HPN-SSH最终以和结束pigz

tar -cf - -C [RELATIVEFOLDER] [FILENAME] | pigz | ssh px "pigz -d | tar xf - -C [REMOTEFOLDER]"

改进之处在于十的幂。

作为参考,安装HPN-SSHpigz开启Ubuntu 14.04非常简单:

# hpn-patched ssh from ppa
sudo apt-get install python-software-properties
sudo add-apt-repository ppa:w-rouesnel/openssh-hpn
sudo apt-get update -y  
sudo apt-get install openssh-server
ssh -V # should have 'hpn' in it somewhere

# pigz
sudo apt-get install pigz

答案2

好吧,有 zipsplit(1) 和 split(1),您可以使用它们来分割大文件,然后再使用 scp(1) 复制它们。或者,如果您希望实现管道化效果,您可以将输出拆分为命名管道,然后将命名管道连接到 ssh。

相关内容