Compactando diretórios e transferindo via pipe por SSH

Publicado por Jefferson Diego em 14/09/2009

[ Hits: 11.071 ]

Blog: http://diede.wordpress.com/

 


Compactando diretórios e transferindo via pipe por SSH



Essa dica é para quem possui pouco espaço livre e precisa copiar muitos arquivos (backup) por SSH.

O comum é usarmos o scp, porém, se não temos espaço para gerar um tar ou mesmo um tar.bz2 dos arquivos localmente e adicionando-se ao fato do scp não suportar pipe, as coisas ficam complicadas, pois seria necessário copiar um a um os arquivos.

Dentre todas as possibilidades, há dois modos básicos de se fazer isso:

1. Usando processamento da máquina local para gerar o bzip2:

# tar -cf - /home/diretório_de_backup | bzip2 -9vv | ssh root@192.168.0.1 "cat > /backup_diretorio.tar.bz2"

2. Usando processamento da máquina remota para gerar o bzip2:

# tar -cf - /home/diretório_de_backup | ssh root@192.168.0.1 "cat | bzip2 -9vv > /backup_diretorio.tar.bz2"

Outras dicas deste autor

Pidgin - Corrigindo erro de certificado omega.contacts.msn.com

Baixando jogos do ClickJogos - UOL

Leitura recomendada

Curso Grátis de Dialog [vídeo]

Letras Bacanas no seu Shell Script sem Figlet

Minha solução para monitorar múltiplos termômetros no Slackware

Iniciando automaticamente o Firestarter com o modo gráfico sem senha

Fancy Git

  

Comentários
[1] Comentário enviado por heiligerstein em 18/05/2012 - 12:27h

Muito boa a dica, mas eu não usaria com SSH, visto que vc cria mais uma camada de criptografia desnecessária. Fiz com o canivete suíço, o *netcat*. Assim elimina também o *cat*.

Máquina que recebe (abre a conexão na porta 1234):
nc -l 1234 | bzip2 -9vv > /backup_diretorio.tar.bz2

Máquina que envia:
tar -cf - "./Minhas músicas"/ | nc 192.168.0.1 1234








Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts