Comprimir um diretório usando tar / gz sobre SSH para o computador local?

12

Eu gostaria de essencialmente tar / gz um diretório em uma máquina remota e salvar o arquivo no meu computador local sem ter que se conectar de volta à minha máquina local a partir do remoto. Existe uma maneira de fazer isso através do SSH? O arquivo tar não precisa ser armazenado na máquina remota, apenas na máquina local. Isso é possível?

    
por Naftuli Kay 31.08.2011 / 01:13

2 respostas

22

Você pode fazer isso com um comando ssh, apenas diga tar para criar o arquivo em sua saída padrão:

ssh remote.example.com 'cd /path/to/directory && tar -cf - foo | gzip -9' >foo.tgz

Outra abordagem, que é mais conveniente se você quiser fazer muitas manipulações de arquivos na outra máquina, mas é um exagero para uma criação de arquivo único, é montar o sistema de arquivos da máquina remota com SSHFS (um sistema de arquivos FUSE ). Você deve ativar a compactação no nível do SSH.

mkdir ~/net/remote.example.com
sshfs -C remote.example.com:/ ~/net/remote.example.com
tar -czf foo.tgz -C ~/net/remote.example.com/path/to/directory foo
    
por 31.08.2011 / 01:25
-1

Para uma maneira simples de copiar um diretório ou arquivo, basta compactá-lo apenas para o transporte:

$ ssh domain.net 'ls foo'
file1   file2

$ ssh domain.net 'tar czf - foo' | tar xz

$ ls foo
file1   file2
    
por 06.10.2017 / 09:40

Tags