Como tar, split, pipe, untar sobre ssh

1

Estou copiando arquivos grandes pela LAN e notei que, ao fazer um pipe ssh, posso obter uma velocidade de transferência de 10MB / s. No entanto, se eu fotografar quatro dessas ao mesmo tempo, obtenho cerca de 40 MB / s de velocidade de transferência no total.

Então eu gostaria de dividir um arquivo grande (por exemplo, 1GB) em partes, e canalizar cada parte por conta própria, em seguida, remontar do outro lado. Precisa tar / zip antes da transferência também, e untar / descompactar no outro lado.

Como posso fazer isso?

    
por knutole 27.03.2015 / 18:26

2 respostas

2

Terminou com HPN-SSH e pigz .

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

Melhoria pelo poder de dez.

Para referência, é fácil instalar HPN-SSH e pigz on Ubuntu 14.04 como:

# 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
    
por 28.03.2015 / 17:54
0

Bem, há zipsplit (1) e split (1), que você pode usar para dividir os arquivos grandes antes de usar digamos scp (1) para copiá-los. Ou você poderia dividir a saída em pipes nomeados e depois cat os pipes nomeados para ssh, se você quiser um efeito pipeline.

    
por 27.03.2015 / 22:58