Como gzipar um diretório, transferir via scp e descomprimir em um comando?

10

Eu freqüentemente transfiro diretórios grandes sobre scp e seria legal se eu pudesse de alguma forma compactar o diretório, enviá-lo e descompactar tudo em um.

É algo assim possível?

    
por macek 07.05.2012 / 19:17

3 respostas

26

Que tal usar rsync com a opção -z habilitada para compactação?

rsync -az --progress source_dir/* remote_host:/destination_dir

Isso também tem o benefício adicional de que, se o arquivo já existir e não tiver sido alterado no destino, ele não será transferido.

    
por 08.05.2012 / 03:02
7

Graças à resposta do @ johnshen64, consegui criar algo muito bom

tar -zc path/to/source | ssh user@remote tar -zxC path/to/destination

Infelizmente, isso não mostra progresso à medida que é transferido. Tenho notado melhorias de velocidade incríveis usando esse método.

Se alguém souber como mostrar o progresso de uma transferência como essa, agradeço muito a ajuda:)

    
por 07.05.2012 / 19:49
2

bem, eu usaria o tar

tar cf - diretório | servidor ssh 'tar xf -'

você pode adicionar v para verificar.

O

zip deve ser o mesmo, mas o tar é mais robusto para o Linux na minha opinião.

    
por 07.05.2012 / 19:25